0
在Windows上,路徑不區分大小寫,在Linux上它們區分大小寫。如何確保兩個路徑不引用節點中的同一文件夾
我有一個文件服務器提供文件,這很好,因爲它將基於使用的操作系統提供服務。但是我跟蹤了某些路徑(包含特定文件的所有文件夾路徑),併爲這些路徑中的每一個加載類的新實例。但我的問題是,如果有人使用的是不區分大小寫的操作系統,它會爲相同的路徑加載兩個實例,這是一個否定的例子。但我不想僅比較toLowerCase(),因爲它們可能位於區分大小寫的文件系統上。
有沒有辦法使用文件夾統計信息來檢查我是否有相同的文件夾?或者以其他方式?
如果還沒有爲不區分大小寫的文件系統創建類,那麼使用返回對現有類或新類的引用的策略如何?對於區分大小寫的文件系統,您始終可以創建一個新類。 –
您在這裏只有兩個選擇:1)拒絕支持僅在大小寫不同的情況下才會有所不同的名稱,然後您可以使用小寫進行所有比較,2)檢測操作系統是否區分大小寫或不是,只對不區分大小寫的文件系統以小寫進行所有比較。選一個。您可以在服務器啓動時進行一次大小寫敏感測試以瞭解。 – jfriend00
據我所知,nodejs不提供一些通用文件ID,您可以在兩個打開的文件之間進行比較以查看它們是否相同。您可以打開第一個文件進行獨佔訪問,隨後嘗試打開相同的文件將失敗,並顯示相應的錯誤以表明它已被使用。 – jfriend00