So ändern Sie einen text-Datei in C++
Möchte ich ändern txt
Datei-name, aber ich kann nicht herausfinden, wie dies zu tun.
Zum Beispiel möchte ich umbenennen foo.txt
zu boo.txt
in meinem C++ Programm.
- C++ nicht direkt unterstützt Dateisysteme. Verschiedene Betriebssysteme bieten unterschiedliche APIs zu dieser Funktion. Was OS sind Sie welche?
- Dies ist nicht eine C++ Frage, außer, dass Sie können öffnen Sie eine Datei mit einem Namen für das Lesen, öffnen Sie eine mit einem anderen Namen für das schreiben und kopieren. Namen ändern ist eine Betriebssystem-Funktion, und deshalb brauchen Sie, um uns zu sagen, welches OS verwendest du für uns dir zu helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
#include <stdio.h>
(oder<cstdio>
) und verwendenrename
(oderstd::rename
):Entgegen der landläufigen Meinung, dies ist enthalten in der standard-Bibliothek, und ist tragbar bis zu einem gewissen Punkt-wenn der Kurs den zulässigen Inhalt des strings unterscheiden sich mit dem Zielsystem.
Dateisystem-Unterstützung ist
vor allem fehlen in der C++ - standard-Bibliothek. Als Jerry Sarg ' s Antwort zeigt, es gibt tatsächlich eine rename-Funktion in stdio (im Gegensatz zu der landläufigen Meinung, die ich teilte). Es gibt aber viele Dateisystem-bezogene Geräte, die standard-lib nicht decken, daher ist die Existenz von Boost::Filesystem (insbesondere Manipulation von Verzeichnissen und abrufen von Informationen über Dateien).Dies ist eine design-Entscheidung von C++ weniger eingeschränkt (d.h. machen es möglich, kompilieren, auf einer Vielzahl von Plattformen, einschließlich embedded-Systemen, in denen die Idee einer Datei ist nicht vorhanden).
Dateivorgänge, hat man zwei Optionen:
Verwenden Sie die API des Ziel-OS
Verwenden Sie eine Bibliothek, die eine einheitliche Schnittstelle auf allen Plattformen
Boost::Filesystem ist eine solche C++ - Bibliothek, die abstracts entfernten Plattform-Unterschiede.
Können Sie die Boost::Filesystem::umbenennen, um eine Datei umzubenennen.