So ändern Sie den Namen einer Textdatei in C ++

7

Ich möchte den Namen einer txt -Datei ändern, aber ich finde nicht, wie das geht.

Zum Beispiel möchte ich foo.txt in boo.txt in meinem C ++ Programm umbenennen.

    
Jail 23.05.2011, 21:05
quelle

2 Antworten

17

#include <stdio.h> (oder <cstdio> ) und rename (oder std::rename ) verwenden:

%Vor%

Entgegen der landläufigen Meinung ist dies in der Standardbibliothek enthalten und ist bis zu einem gewissen Punkt übertragbar - obwohl der zulässige Inhalt der Zeichenfolgen natürlich vom Zielsystem abhängt.

    
Jerry Coffin 23.05.2011, 21:12
quelle
4

Die Dateisystemunterstützung ist insbesondere in der C ++ - Standardbibliothek nicht vorhanden. Wie Jerry Coffins Antwort zeigt, gibt es tatsächlich eine Umbenennungsfunktion in stdio (im Gegensatz zu der weit verbreiteten Meinung, die ich geteilt habe). Es gibt jedoch viele dateisystembezogene Appliances, die von der Standardbibliothek nicht abgedeckt werden, daher die Existenz von Boost :: Dateisystem (insbesondere das Bearbeiten von Verzeichnissen und das Abrufen von Informationen über Dateien).

Dies ist eine Design-Entscheidung, um C ++ weniger eingeschränkt zu machen (d. h. es kann auf einer breiten Palette von Plattformen kompiliert werden, einschließlich eingebetteter Systeme, wo die Idee einer Datei nicht existiert).

Um Dateioperationen auszuführen, gibt es zwei Möglichkeiten:

  • Verwenden Sie die API des Zielbetriebssystems

  • Verwenden Sie eine Bibliothek, die plattformübergreifend eine einheitliche Oberfläche bietet

Boost :: Dateisystem ist eine solche C ++ - Bibliothek abstrahiert die Unterschiede der Plattform.

Sie können das Boost :: Dateisystem :: rename verwenden um eine Datei umzubenennen.

    
Tamás Szelei 23.05.2011 21:08
quelle

Tags und Links