2011-07-24 86 views
0

是否有Windows API用於確定某個文件(路徑)是否位於NTFS文件系統上?確定文件是否在NTFS文件系統上

如果這可以以某種方式從現有的Python API推斷出來,那就更好了。

+0

相關http://stackoverflow.com/questions/2800798/how-to-find-the-file-system-type-in​​-python –

回答

1

不知道如何在Python中做到這一點,但我認爲調用C函數將很容易。

因此,在C打開文件句柄BU CreateFile,您將檢索到這樣的文件的句柄。然後調用GetVolumeInformationByHandleW並檢查lpFileSystemNameBuffer變量是否爲「ntfs」字符串。

+0

恩,剛纔注意到這個最低要求的Windows版本是Vista –

+0

在早期的版本可以使用GetVolumeInformation函數作爲重分析點,但ntfs尚不支持。 – Yakeen

+0

是的,問題是它需要根路徑不太方便,謝謝。 –

1

在Python中,你可以這樣做:

import win32api 
t = win32api.GetVolumeInformation(path) 
print t[-1] 

,它將打印ntfs如果路徑上的文件系統類型

(基於Yakeen的答案,但還未經測試,因爲我沒有Windows機器)

+0

就是這樣,但這種方式在重新分析點上不起作用(如將已裝入的卷視爲目錄)這就是爲什麼在文件句柄上工作更安全。 – Yakeen

0

根據您的需要,您可以使用GetFileAttributes並檢查ntfs File Attribute Constants。

+0

你的意思是什麼Mox?他們都在場,只是在特殊情況下。 – Yakeen

+0

我的意思是,像FILE_ATTRIBUTE_ENCRYPTED或FILE_ATTRIBUTE_SPARSE_FILE這樣的屬性只能在NTFS捲上使用。這些屬性可以用作提示來確定文件是否在NTFS文件系統上。 – mox

相關問題