我使用fopen("aaa\bbb\ccc\myfile.txt","w")
来创建输出文件。但文件夹aaa
,bbb
和ccc
不存在。解决这个问题的最好方法是什么?是否有任何标准的方式来问fopen创建所有需要的文件夹?用fopen创建所有需要的文件夹
9
A
回答
-1
fopen()用于打开文本或二进制文件的输入流而不是目录文件。如果你想让你的文件在保存不存在目录的路径中打开,我建议你使用/sys/stat.h头文件的mkdir()方法。一旦你准备好了目录,你可以使用fopen()来打开你需要的文件(或者如果它不存在的话,可以创建它)。 这是我用我的$ HOME文件夹的目录中创建文件的方法: -
char* home_dir= getenv("HOME");
/*creates the directory with specified modes*/
mkdir(strcat(home_dir, "/make-a-note/"),S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
/*used the strcat() to generate the file-path.*/
personal_work=fopen(strcat(home_dir,"personal_work.txt"),"a+");
+0
不要使用该代码,'strcat()'调用是邪恶的:它肯定会超越持有环境变量内容的缓冲区。这种未定义的行为可能会破坏一些其他环境变量,或者更糟。 – cmaster
相关问题
- 1. Eclipse Android插件不会创建所有必需的文件夹
- 2. PHP fopen($文件)$文件需要转义?
- 3. Fopen没有创建新文件
- 4. fopen无法创建文件
- 5. ZipFile使用zip中的所有文件夹创建zip文件
- 6. makecab - 从文件夹中的所有文件创建cab文件
- 7. 批处理文件创建文件夹,不需要
- 8. PHP的FOPEN不创造所需的目录文件
- 9. 创建connect.php有需要在.htx文件
- 10. 创建Win7的批处理文件,所有文件夹中
- 11. hadoop fs -mkdir无法创建所需的文件夹
- 12. SVN CheckOut问题 - 创建不需要的子文件夹
- 13. 使用fopen在脚本文件夹中创建一个新文件
- 14. 创建新文件夹,如果它们不存在fopen
- 15. 我需要删除的文件夹和所有后代
- 16. 复制所有文件递归到一个文件夹(无需重新创建文件夹)
- 17. 在所有子文件夹中创建空文件
- 18. Php ZipArchive创建没有所有文件夹的zip
- 19. 我需要在创建项目时获取maven文件夹
- 20. 我是否需要在cloudinary中创建文件夹?
- 21. 如何使用所有必需的文件和文件夹构建java项目?
- 22. 要求在qt中创建文件夹
- 23. 支持所有Android设备需要哪些布局文件夹?
- 24. 是否需要为所有dpi文件夹提供图像?
- 25. 创建vba代码来替换文件夹和子文件夹中所有word文档的所有标题
- 26. Cpanel - 如何为所有用户创建文件夹
- 27. fopen是否创建文件描述符?
- 28. PHP fopen()不会创建文件
- 29. php fopen()不会创建文件
- 30. PHP fopen无法创建文件
没有,'fopen'不会让目录。有一个关于扩展'mkdir()'的问题,已经有了很好的答案(http://stackoverflow.com/questions/2336242/recursive-mkdir-system-call-on-unix/11425692)与你想要的相似。你需要在''aaa/bbb/ccc /“'上执行多级mkdir,然后调用'fopen'。 –
对于Windows,你可以使用这篇文章中的信息http://stackoverflow.com/questions/2834737/creating-new-folders-if-the-dont-exist-for-fopen – alexJones
记得加倍反斜杠,一般来说是。由于'fopen()'根本不支持创建目录,所以不会帮助解决这个问题,但是如果* dirs存在,它将是必要的。 – unwind