在 Windows 上檢查 C 中是否存在區分大小寫的檔案的好方法是什么?
我通過將檔案名與檔案名目錄中的所有檔案條目進行比較來使其作業。在 C 中有更有效的方法嗎?
uj5u.com熱心網友回復:
用這個:
WIN32_FIND_DATAA FindFileData;
HANDLE h = FindFirstFile(filenametocheck, &FindFileData);
現在FindFileData.cFileName包含存盤在 NTFS 中的檔案名。
您需要做的就是filenametocheck與FindFileData.cFileName.
不要忘記關閉h句柄FindClose(h)并進行錯誤檢查。
這僅適用于檢查當前目錄,如果filenametocheck包含路徑(例如..\somefile.txt, 或C:\\Somedir\Somefile.txt),您需要做一些更多的作業。
有關更多詳細資訊,請閱讀 的檔案FindFirstFile并可能查看此示例。
請注意,根據您要實作的具體目標,這可能會導致評論中提到的TOCTOU 錯誤。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/328725.html
