我正在使用fopen("aaa\bbb\ccc\myfile.txt","w")创建输出文件.但是,文件夹aaa,bbb和ccc简化版,存在.解决这个问题的最佳方法是什么?是否有任何标准方法可以让fopen创建所有需要的文件夹?
akh*_*ari -3
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+");
Run Code Online (Sandbox Code Playgroud)