Ändern des aktuellen Arbeitsverzeichnisses in C
Bei der Arbeit mit Dateien und E/A tritt häufig die Notwendigkeit auf, das aktuelle Arbeitsverzeichnis anzupassen Operationen. C bietet eine plattformunabhängige Lösung für diese Aufgabe durch die Verwendung der Funktion std::filesystem::current_path.
C 17 Lösung: std::filesystem::current_path
In C 17 stellt die std::filesystem-Bibliothek eine plattformübergreifende API für Dateisystemoperationen bereit. Die Funktion std::filesystem::current_path ermöglicht sowohl das Abrufen als auch das Festlegen des aktuellen Arbeitsverzeichnisses.
Beispiel:
#include
int main() {
namespace fs = std::filesystem;
// Retrieve the current working directory
fs::path current_path = fs::current_path();
// Set the current working directory
fs::current_path(current_path / "new_directory");
}
In diesem Beispiel rufen wir zunächst das aktuelle Arbeitsverzeichnis mit der Funktion current_path ab und speichern es in einem fs::path-Objekt. Anschließend können wir dieses fs::path-Objekt verwenden, um das aktuelle Arbeitsverzeichnis auf einen neuen Pfad festzulegen, in diesem Fall das Unterverzeichnis „new_directory“.
Kompatibilität
Die std::filesystem-Bibliothek ist in C 17 und höher verfügbar. Für ältere C-Versionen stehen plattformspezifische Optionen zur Verfügung, beispielsweise direct.h für Windows oder unistd.h für UNIX/POSIX-Systeme. Allerdings fehlt diesen Optionen die Portabilität von std::filesystem::current_path.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3