Ich verwende fopen("aaa\bbb\ccc\myfile.txt","w")
, um eine Ausgabedatei zu erstellen. Aber die Ordner aaa
, bbb
und ccc
existieren nicht. Was ist der beste Weg, um dieses Problem zu lösen? Gibt es eine Standardmethode, fopen zu bitten, alle benötigten Ordner zu erstellen?
Wenn Sie C ++ in Ihrem Programm mischen können, hat die Bibliothek boost.filesystem eine sehr nützliche Funktion um alle Zwischenverzeichnisse zu erstellen.
bool create_directories (const Pfad & amp; p);
fopen () wird verwendet, um Eingabestreams für Text- oder Binärdateien und nicht für die Verzeichnisdateien zu öffnen. Wenn Sie Ihre Datei in einem Pfad geöffnet haben möchten, der nicht existierende Verzeichnisse enthält, würde ich vorschlagen, dass Sie die mkdir () -Methode der Headerdatei /sys/stat.h verwenden. Sobald Sie die Verzeichnisse bereit haben, können Sie fopen () verwenden, um die benötigte Datei zu öffnen (oder sie zu erstellen, falls sie nicht bereits vorhanden ist). Dies ist der Ansatz, den ich verwendet habe, um eine Datei in einem Verzeichnis meines $ HOME-Ordners zu erstellen: -
%Vor%