gpt4 book ai didi

c - 使用 fopen 创建所有需要的文件夹

转载 作者:太空狗 更新时间:2023-10-29 16:34:26 28 4
gpt4 key购买 nike

我正在使用 fopen("aaa\bbb\ccc\myfile.txt","w") 创建输出文件。但是文件夹 aaabbbccc 不存在。解决这个问题的最佳方法是什么?是否有任何标准方法要求 fopen() 创建所有需要的文件夹?

最佳答案

正如其他人所指出的,C 标准库中的目录不支持跨平台。

据我所知,fopen() 和 friend 们甚至不知道或不关心 /-es 或 \您提供的路径中的 -es 在当今使用的两个主要操作系统系列中用作目录分隔符。

有关单个 目录创建的跨平台解决方案,请参阅@dbush 的answer .

然后您可以用您自己的函数包装它,该函数将采用完整的文件/目录路径,包括所有父文件夹,并逐一创建所有必需的父文件夹(如果需要)。

为此,您需要设计一种方法从文件路径中提取每个连续的父目录,从最顶层/最左侧的目录开始。在 C 语言中拆分字符串时要小心,因为像 strtok() 这样的函数可能不安全——您最好使用不同的方法将路径转换为要创建的目录列表。

您可能还需要处理目录已存在的情况,或者文件存在于您想要放置其中一个目录的路径中的情况。

关于c - 使用 fopen 创建所有需要的文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21236508/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com