我最近在應用程序中添加了使用GetTempPath。在代碼審查它強調的是GetTempPath的描述所包含的信息:檢查目錄的正確方法可用於編寫
應用程序應該先於任何使用文件I/O操作驗證的路徑和足夠的訪問權限存在的路徑。
現在,所有的文件訪問都被封裝在try/catch塊中,並且會有哪些系統無法訪問它自己的臨時目錄?
我最初的想法是嘗試創建目錄,如果它們不存在(通過GetFileAttributes和CreateDirectory),然後創建一個文件,寫一個字節,然後刪除該文件。雖然這會起作用,但它會產生無知 - 確實有更好的方法來檢查您是否有權訪問文件夾?
我開始尋找和發現文件屬性常量,通用訪問權限,標準訪問權限,文件訪問權限常量和GetSecurityInfo函數。所有這些似乎都創建了比創建文件更長的解決方案,並查看它是否堅持方法。
那麼使用WinAPI函數檢查您是否有寫入權限的正確方法是什麼?
+1我同意100% –
特別是當AV產品介入時遊戲發生變化。它們以安全名稱阻止臨時文件夾中的某些操作而聞名,例如,阻止可執行文件。 – Deanna