Ich habe einige C# -Code, um Informationen über eine Datei über WMI zu erhalten, die die folgende Abfrage machen verwendet, um:Ermitteln, ob eine Pfadangabe ein Verzeichnis oder eine Datei (oder etwas anderes) über WMI ist?
SELECT * FROM CIM_DataFile WHERE Drive = 'C:' AND Path = '\\temp\\' AND FileName = 'testemef' AND Extension = 'txt'
Ich fand heraus, dass ich beide Verzeichnisse und Dateien abfragen kann, wenn ich die CIM_LogicalFile
Klasse anstelle :
SELECT * FROM CIM_LogicalFile WHERE Drive = 'C:' AND Path = '\\temp\\' AND FileName = 'testemef' AND Extension = 'txt'
erdacht ich einen Umweg eine Datei oder ein Verzeichnis, um zu bestimmen, ob die zurückgegebene Instanz ist: wenn ich eine Ausnahme erhalten versuchen, die FileSize
Eigenschaft zuzugreifen, ist es ein Verzeichnis; Wenn nicht, ist es eine Datei. Ich mag diese Methode nicht, da es andere Dinge als Verzeichnisse und Dateien geben kann. (Named Pipes? Symlinks?)
Leider gibt es keine einzigartige Eigenschaft in der CIM_Directory
Klasse, die in der Basis CIM_LogicalFile
Klasse nicht existiert, so jetzt ich zu wissen, dass etwas reduziert werde „nicht eine Datei“ , anstatt "ist ein Verzeichnis".
Gibt es in WMI einen luftdichteren Weg, um festzustellen, dass eine Pfadangabe, bei der es sich nicht um eine Datei handelt, tatsächlich eher ein Verzeichnis als eine andere exotische Einheit ist?
Das hat den Trick gemacht. Vielen Dank! – JCCyC