代码之家  ›  专栏  ›  技术社区  ›  JCCyC

通过WMI找出pathspec是目录还是文件(或其他东西)?

  •  1
  • JCCyC  · 技术社区  · 17 年前

    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 属性,它是一个目录;如果不是,它就是一个文件。我不喜欢这种方法,因为除了目录和文件之外,可能还有其他东西。(命名管道?Symlinks?)

    CIM_Directory CIM_LogicalFile

    WMI中是否有更严密的方法来确定不是文件的路径规范实际上是一个目录,而不是其他外来实体?

    1 回复  |  直到 17 年前
        1
  •  1
  •   Jeff Atwood    17 年前

    检查对象的 ClassPath.ClassName 属性(WMI系统属性的托管包装器 __CLASS )-它回来了 Win32_Directory 对于文件夹和 CIM_DataFile 对于文件。

    推荐文章