阅读:2889回复:13
如何判断创建的是文件还是文件夹
在Create中如何判断要创建的是文件,还是文件夹?
请大牛指教,谢谢! |
|
|
沙发#
发布于:2008-06-21 22:55
FILE_DIRECTORY_FILE
|
|
板凳#
发布于:2008-06-23 09:28
多谢了,在Create.Options中判断吧。
但是还是不是很准确啊。如一个文件夹dir 如果打开时文件名为dir则不一定设FILE_DIRECTORY_FILE,有时设有时不设 如果为dir\则设FILE_DIRECTORY_FILE 不知是我的判断问题呢,还是哪儿出问题了,望指教,谢谢!! |
|
|
地板#
发布于:2008-06-23 18:40
在完成全程中判断
|
|
地下室#
发布于:2008-06-24 12:15
我也碰到同样的问题,在Create.Options中判断确实不准确.
在完全全程中如何判断呀,望不吝赐教 |
|
5楼#
发布于:2008-06-24 15:51
是不是用JAVA啊 用JAVA的话可以这样判断 判断文件就 file.isFile() 判断目录 file.isDirectory()
|
|
6楼#
发布于:2008-06-24 23:07
很久以前做过这样的东西,记得好像是根据某个值是03还是05来判断是文件还是文件夹,时间长了记不清楚了,我建议你看一下DDK中和文件系统相关的头文件
|
|
7楼#
发布于:2009-10-20 09:48
在Create.Options中判断不准确阿
|
|
8楼#
发布于:2009-10-20 10:24
FileObject->FsContext->NodeTypeCode
|
|
9楼#
发布于:2009-10-20 14:53
或者用FltQueryInformationFile
|
|
驱动小牛
|
10楼#
发布于:2009-10-21 10:26
SpyQueryInformationFile 去FileSpy例子里面找吧
|
|
11楼#
发布于:2009-10-23 10:30
好多热心人啊,谢了各位。在完成中找是比较准确的,只是有时候感觉在那儿判断有点晚了
|
|
|
12楼#
发布于:2009-10-23 11:26
你是想知道 要打开的还是要创建的?首先 到下面去找这个要打开的Object 存在否?如果存在的话 就能知道是DIR或者FILE,如果不存在嘛,那么文件系统只有在create的时候指定DIRECOTRY的属性的时候,才会明确创建一个文件夹!如果没有 那么就是要求创建文件了! 所以 在create Complete 之前来做这个,是有明确的可行的方式的!
|
|
13楼#
发布于:2009-10-23 16:36
只能在完成后判断,在打开文件之前判断的都不准确,Create.Options中如果指名是文件夹,只能代表CreateFile期望打开的是文件夹,期望的当然不准。
调用下层完成后调以下代码判断: ntStatus = KAVQueryInformationFile( DeviceObject , FileObject , &FileInfo , sizeof(FILE_STANDARD_INFORMATION) , FileStandardInformation , NULL ); if (!NT_SUCCESS(ntStatus)) { break; } if (FileInfo.Directory) { //do something... } |
|