如何在 Windows 7 上建立具有區分大小寫檔案系統的虛擬磁碟?

如何在 Windows 7 上建立具有區分大小寫檔案系統的虛擬磁碟?

我不關心它到底是哪個檔案系統,我只需要檔案路徑以區分大小寫的方式運作。

可能類似於 Linux 機器上開啟區分大小寫的 samba 共享的行為。這將是完美的,除了我需要將磁碟儲存在本地。

有相關的驅動程式/工具嗎?

我已經嘗試過幾個適用於 Windows 的 ext2 驅動程序,但它們不能用於此目的:( (http://www.fs-driver.org/http://www.fs-driver.org/

答案1

簡單回答是不。長答案是...

NTFS 確實以區分大小寫的方式儲存檔案名稱(NTFS 可以在同一目錄中包含README.txt 和readme.txt),甚至Windows 檔案名稱管理器也可以透過NtOpenFile / NtCreateFile 系統呼叫在內部管理對檔案名稱的區分大小寫的請求。

不幸的是,Win32 函數CreateFile(在任何地方都使用,包括fopen)將使用OBJ_CASE_INSENSITIVE 標誌在內部呼叫NtCreateFile,這意味著所有使用CreateFile 的應用程式將不區分大小寫地查看您的區分大小寫的檔案系統。實際上,這意味著所有應用程式都將以不區分大小寫的方式查看您的檔案系統,無論您的檔案系統實際上是否區分大小寫。

我認為你實際上強制區分大小寫的唯一方法是編寫一個過濾驅動程序,它將從傳入的系統呼叫請求中刪除OBJ_CASE_INSENSITIVE 標誌,然後允許NTFS、EXT2 或任何你必須在預設情況下運行的內部文件系統,區分大小寫的方式。

答案2

在 Windows 內部,這是可能的,但你必須能夠編寫 C 語言。

NTFS 實際上儲存名稱時區分大小寫(支援 POSIX 子系統)。然而,NTFS 本身並不實際支援區分大小寫的功能。考慮到 NT 最初是作為 UNIX 的直接競爭對手而編寫的,這並不奇怪。

http://support.microsoft.com/kb/100108

關聯

http://www.netbsd.org/docs/pkgsrc/platforms.html#interix

答案3

看起來唯一的方法是安裝虛擬化 Linux 並將虛擬機器的磁碟機共用給 Windows。

我一直在互聯網上尋找相同的解決方案,主要是從 Linux 系統中檢查 GIT 存儲庫,該存儲庫中的文件僅大小寫不同(不要宣揚它們為什麼在那裡——這超出了我的控制範圍)。但看起來沒有相對簡單的方法可以做到這一點,除了編寫自己的子系統或深度整合到 Interix(現在的 Unix 服務)子系統之外。

相關內容