阅读:1123回复:4
怎么获取修改后的文件名称?
我在
case IRP_MJ_SET_INFORMATION: if( currentIrpStack->Parameters.SetFile.FileInformationClass == FileRenameInformation ) {//文件名称被修改 //请问我在这里怎么获取修改后的文件名称? } 我想捕捉文件名被修改的操作并记录下来! 谢谢! |
|
沙发#
发布于:2005-07-05 16:38
还有一个问题:
就是从一个目录1下copy一个文件到另一个目录2下, 我在case IRP_MJ_CREATE:中获取到目录2下的文件, 可是我怎么获取到该文件的原来路径,就是怎么获取目录1? 谢谢! |
|
板凳#
发布于:2005-07-06 13:17
建议看看osr white papers中的Cracking Rename Operations一文
另外copy就是读文件,写文件,而且读文件和写文件之间并没有什么必须的关联, 所以你的第二个问题,基本不可能解决 |
|
地板#
发布于:2005-07-06 16:05
typedef struct {
BOOLEAN Replace; HANDLE RootDir; ULONG FileNameLength; WCHAR FileName[1]; } FILE_RENAME_INFORMATION, *PFILE_RENAME_INFORMATION; PFILE_RENAME_INFORMATION renameinfo; 获取的新文件名在renameinfo->FileName中, 我输出renameinfo->FileNameLength 为28, 而renameinfo->FileName却为“\"; 为什么?是不是WCHAR的缘故,我是在filemon中调用LogRecord加到日志中, LogRecord加的是char,不是WCHAR, 怎么把WCHAR数组转换为char数组? 谢谢! |
|
地下室#
发布于:2005-07-07 08:59
wcstombs()可以解决WCHAR数组转换为char数组的问题!
谢谢tooflat 请问,我怎么给分给你? 一定要告诉我哦 |
|