【发布时间】:2009-08-12 21:32:10
【问题描述】:
我有一些 C# 代码通过 WMI 获取有关文件的信息,用于进行以下查询:
SELECT * FROM CIM_DataFile WHERE Drive = 'C:' AND Path = '\\temp\\' AND FileName = 'testemef' AND Extension = 'txt'
我发现如果我使用 CIM_LogicalFile 类代替,我可以查询两个目录 和 文件:
SELECT * FROM CIM_LogicalFile WHERE Drive = 'C:' AND Path = '\\temp\\' AND FileName = 'testemef' AND Extension = 'txt'
我设计了一种迂回的方法来确定返回的实例是文件还是目录:如果我在尝试访问 FileSize 属性时遇到异常,则它是目录;如果不是,它是一个文件。我不喜欢这种方法,因为除了目录和文件之外还有其他东西。 (命名管道?符号链接?)
不幸的是,CIM_Directory 类中没有任何唯一属性不存在于基类 CIM_LogicalFile 中,所以现在我只知道某些东西“不是文件”,而不是“是一个目录”。
在 WMI 中是否有更紧密的方法来确定不是文件的路径规范实际上是一个目录,而不是其他一些奇异的实体?
【问题讨论】: