在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. 如何获取文本文件中的行数而不打开它?