在boost文件系統中有一個功能create_directory
它創建一個目錄。我如何創建一個文件?我可以通過定義一個boost::filesystem::ofstream
對象來創建一個對象,但這也會打開該文件,因此我必須先調用close
才能對其執行其他操作,例如重命名或刪除。這是唯一的方法嗎?如何創建帶有boost文件系統的文件而不打開它
6
A
回答
5
Boost Filesystem V3不提供touch(1)
函數;
即使touch
將創造+關閉文件,只需看看strace
輸出:
open("/tmp/q", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 47
dup2(47, 0) = 0
close(47) = 0
utimensat(0, NULL, NULL, 0) = 0
我覺得你最合理的辦法是隻創建一個關閉文件的包裝功能。
1
你可以只使用類似
// ... code ...
boost::filesystem::ofstream("/path/to/file");
boost::filesystem::rename("/path/to/file", "/path/to/renamed_file");
// ... code ...
這將創建一個空文件,並立即將其重命名,而不需要在任何時候將其關閉。
相關問題
- 1. 打開帶有文件名「=」的文件
- 2. 在文件系統中創建文件
- 3. 在文件中創建文件系統
- 4. 如何在文件上創建鎖而不允許WINDOWS打開文件?
- 5. 使用boost文件系統獲取文件系統類型
- 6. 如何創建和打開文件
- 7. 無法創建本地文件系統如何寫入本地文件系統
- 8. 如何在系統文件資源管理器中打開文件/文件夾?
- 9. boost文件系統copy_file「成功」,但沒有複製文件
- 10. FUSE文件系統監視任何創建/刪除的文件
- 11. 在內存中創建文件不是文件系統
- 12. 安裝過程中不會創建文件系統文件夾
- 13. 在javascript中打開本地文件系統中的文件
- 14. Android文件系統:java.io.FileNotFoundException:/ savedArticlesFile:打開失敗:EROFS(只讀文件系統)
- 15. 如何在保存文件時在文件系統上創建文件夾
- 16. 打開gzip文件在C中讀取而不創建臨時文件
- 17. 替代棄用boost文件系統initial_path
- 18. Boost文件系統迭代器
- 19. 如何刪除由eclipse插件創建的本地文件系統文件
- 20. 創建文件時不打開/鎖定它?
- 21. Codename one從文件系統存儲打開文件
- 22. 打開文件;先嚐試文件系統,然後JAR
- 23. 「文件系統錯誤(1003)」打開BlackBerry文件連接
- 24. psql:FATAL:無法打開文件「base/11951/11717」:只讀文件系統
- 25. jedit在打開文件時使用鍵導航文件系統
- 26. 想要從SharePoint打開文件系統文件,通過腳本
- 27. 關於系統程序:打開UNIX文件系統
- 28. 文件系統開發
- 29. 從JAR打開文本文件而不提取它 - 請幫助
- 30. 如何獲取文本文件中的行數而不打開它?