阅读:1831回复:8
2000下长短文件名的问题。
2000下如何得到一个FileObject的长文件名?我看filemon是用的自己构造IRP向下传,得到的文件名似乎和用户的请求相关,可长可短。有没有用过ObQueryObjectString的,听说得到的文件名肯定是长文件名。那个高手指点一下,先谢了!
|
|
最新喜欢:ljmmar...
|
沙发#
发布于:2003-01-13 14:19
使用IRP_MJ_QUERY_INFORMATION得到的一定是长文件名,这个错不了.
ObQueryObjectString没用过,不过据说用IRP_MJ_QUERY_INFORMATION比较好! filespy,filemon全用这种方式. |
|
板凳#
发布于:2003-01-13 17:05
vcmfc, 我试了,不行。在DOS下如果用短文件名下dir,得到的就是短文件名。
情况如下: c:\\mydoc~1> dir 在google上查了一下,说有些文件系统对于以短文件名打开的目录只在file_name_information下返回短文件名。 [编辑 - 1/13/03 by kenli79] |
|
|
地板#
发布于:2003-01-13 17:32
需要循环调用,从根目录下的目录开始开始
|
|
地下室#
发布于:2003-01-14 00:00
我试试..........................
|
|
5楼#
发布于:2003-01-14 00:18
奇怪,我在DOS窗口看到的长目录没有出现~1,你是如何产生这种环境的????
我是在2K完全启动起来进入DOS窗口的. |
|
6楼#
发布于:2003-01-14 00:19
我这边有地方挺邪门,解密.doc,exe.txt都没有问题,一解密.zip,就完了,还有chm,真是可恶.
|
|
7楼#
发布于:2003-01-14 09:17
不好意思,我没有仔细看filemon的源代码。他有些文件名是重fileobject里面直接得到的,这时候是短文件名。我在试试。
|
|
|
8楼#
发布于:2003-01-14 10:15
我是自己看到长文件名,猜出其可能的短文件名(前6个非空格字母加~1)
我试出来了,QUERY_INFORMATION得到的肯定是长文件名,但是重FILEOBJECT的NAME BUFFER中得到的是系统打开是传给的文件名,这个只有在CREATE时才有。 我上面提到的特殊情况是在某些文件系统(Netware)下产生的,在微软的FAT和NTFS下不是。 谢谢你了vcmfc。 |
|
|