我在std.file
中缺少一個函數,用於檢查成員DirEntry
是否意味着它可以被特定用戶標識(默認爲當前用戶)讀取。有人寫過這樣的邏輯嗎?爲什麼在標準庫中沒有這樣一個經常使用的函數呢?檢查文件/目錄條目是否可讀
3
A
回答
4
我知道這樣的功能並不難寫。
真的嗎?我期待看到您的實施可以在D支持的所有系統上運行。這包括對Windows和Linux ACL的支持,更不用說安全軟件,比如SELinux。
我相當肯定,檢查打開文件是否成功的通用正確方法是嘗試打開文件。如果你能夠接近一個近似值,並且只關心Linux,那麼你可以使用C eaccess
函數 - 但它不是POSIX的一部分,只能在Linux上工作。如果你的程序永遠不會以root身份運行,你可以使用POSIX的一部分access
。就我個人而言,如果沒有很好的理由,我不會走這條路。如果您擔心性能(並且您期望有很多文件存在但由於某些原因而不可讀),則可以使用C函數(fopen
或POSIX open
),但我只會在執行此操作時執行此操作分析實際上顯示了異常處理造成的瓶頸。更不用說,您需要準備好拋出異常,正如上面以及您之前關於此主題的問題所討論的那樣。
只要使用異常處理,除非你真的知道你在做什麼。
+1
好的。對不起,你是對的。我有點sl of。我從我的帖子中刪除了關於「不難」的帖子。謝謝。 –
相關問題
- 1. 檢查目錄是否可讀
- 2. Bash文件或目錄是否可讀?
- 3. 檢查一個目錄是否爲(文件系統)根目錄
- 4. 如何檢查是否可以將文件寫入目錄?
- 5. C++:如何檢查文件/目錄是否可讀? (PHP等效:is_readable)
- 6. 檢查是否每個人都可以讀取/寫入目錄
- 7. 檢查文件是否可讀爲BufferedImage
- 8. powershell檢查文件目錄
- 9. 如何檢查目錄以查看它是否有文件
- 10. PHP檢查文件是否存在而不是目錄
- 11. GNU做:檢查文件是否是一個目錄
- 12. 如何檢查文件名是否是C目錄?
- 13. 檢查參數是否是文件或目錄
- 14. 檢查目錄是否有文件,但它可能包含子文件夾
- 15. 如何檢查Swift文檔目錄中是否存在文件?
- 16. 檢查文件是否保存在文檔目錄中
- 17. 檢查文檔目錄中是否存在文件
- 18. 檢查目錄中的文本文件是否顯示直接
- 19. 如何檢查目錄是否是Python中的臨時目錄
- 20. 如何檢查IIS目錄是否是虛擬目錄?
- 21. 檢查文件是否在bash中的給定目錄(或子目錄)中
- 22. 是否可以給條件檢查目錄並基於該代碼?
- 23. PHP - 檢查表是否存在條目
- 24. JDBC檢查是否存在條目
- 25. Grails是否可以從遠程文件目錄中讀取?
- 26. 如何檢查目錄是否存在?
- 27. 檢查目錄是否不存在
- 28. 檢查lua中是否存在目錄?
- 29. Laravel s3檢查目錄是否存在。
- 30. 檢查是否NSOpenPanel返回目錄
你在寫什麼樣的應用程序,你認爲在文件存在但不可讀的情況下不依賴於例外是正確的? –
我在以前的一篇關於stackoverflow的D-post中從andralex得到了這個建議。 –
你是指[這篇文章](http://stackoverflow.com/a/18905577/21501)?因爲對我來說,安德烈似乎是在說相反的事情 - 使用異常處理。 –