阅读:1854回复:1
替换已存在文件
本人想用XXX.TMA文件重命名后替换已存在的XXX.DOC文件,但不知为何怎样也不能成功替换,错误代码为:STATUS_ACCESS_DENIED
部分代码如下: InitializeObjectAttributes( &ObjectAttributes, &path_tma, //XXX.TMA文件 OBJ_CASE_INSENSITIVE, NULL, NULL ); ntstatus=ZwCreateFile( &htma, SYNCHRONIZE | DELETE, &ObjectAttributes, &IoStatus, NULL, 0, FILE_SHARE_READ, FILE_OPEN, FILE_SYNCHRONOUS_IO_NONALERT | FILE_NO_INTERMEDIATE_BUFFERING, NULL, 0); if(!NT_SUCCESS(ntstatus)) { KdPrint(("SystemCloseThread:打开源文件失败,错误代码NTSTATUS:%x",ntstatus)); goto THREAD_LAST; } else { //将TMA文件重命名为DOC文件 //path为DOC文件路径 RtlZeroMemory(frnameinf,frnameinf_len); frnameinf->ReplaceIfExists=TRUE; frnameinf->RootDirectory=NULL; frnameinf->FileNameLength=path->Length; RtlCopyMemory(frnameinf->FileName,(WCHAR*)path->Buffer,path->Length); KdBreakPoint(); ntstatus = ZwSetInformationFile( htma, &IoStatus, frnameinf, frnameinf_len, FileRenameInformation ); if(!NT_SUCCESS(ntstatus)) { KdPrint(("SystemCloseThread:替换DOC文件失败,错误代码NTSTATUS:%x",ntstatus)); } } |
|
沙发#
发布于:2011-02-11 14:38
STATUS_ACCESS_DENIED 是在那发生的 这个错误时权限不够
|
|