在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. 如何创建串口而不打开它,使用boost
- 3. 打开带有文件名“=”的文件
- 4. 的boost ::文件系统:: create_symlink不支持
- 5. 在文件中创建文件系统
- 6. 在文件系统中创建文件
- 7. 使用在文件系统上打开xml文件的XSLT创建超链接
- 8. 如何在文件上创建锁而不允许WINDOWS打开文件?
- 9. 使用boost文件系统获取文件系统类型
- 10. 如何在Android的文件系统中创建子文件
- 11. 如何在boost中打开文件
- 12. 无法创建本地文件系统如何写入本地文件系统
- 13. 如何创建和打开文件
- 14. 通过PLSQL打开文本文件而不创建目录
- 15. XPages:如何创建链接从文件系统下载文件
- 16. Node-Webkit:如何在本地文件系统中创建文件?
- 17. 如何在系统文件资源管理器中打开文件/文件夹?
- 18. boost文件系统copy_file“成功”,但没有复制文件
- 19. 如何使用boost文件系统确定文件或目录的所有者?
- 20. 如何创建带有内容(文件/目录)的ext3文件系统并将它们打包到二进制文件中?
- 21. 是否有可能从文件系统创建VectorDrawable(* .xml文件)
- 22. FUSE文件系统监视任何创建/删除的文件
- 23. 创建PDF文件,但不能打开
- 24. 安装过程中不会创建文件系统文件夹
- 25. 在内存中创建文件不是文件系统
- 26. 在javascript中打开本地文件系统中的文件
- 27. 如何打开JSFL文件而不运行它?
- 28. 如何从CSV文件中检索数据而不打开它
- 29. 如何打开读写文件并重新创建文件?
- 30. Android文件系统:java.io.FileNotFoundException:/ savedArticlesFile:打开失败:EROFS(只读文件系统)