paar kleine fragen :)
-
Hi all
wie kann ich mit c++
1. dateien löschen
2. dateien umändern
3. verknüpfung erstellen und sie bearbeiten?
4. dateien unbenennenZum beispiel ich will so ein kleines Programm erstellen das von explorer.exe eine verknüpfung macht und sie dann bearbeitet wie ich das will=?
thx voraus
-
Und warum stellst du die Frage im Konsolenforum?
-
1. Geht mit dem C++-Standard:
// remove, löscht Datei mit dem Pfad path und gibt 0 bei Erfolg zurück. int remove( const char *path );
Sollte der Löschvorgang nicht erfolgt haben:
ENOENT ... File nicht gefunden
EACCES ... Kein Zugriff auf die Datei2. Geht in C++ nur eingeschränkt (nur sequentiell). Dazu findest du einiges in der C++-FAQ.
3. Kommt nun endgültig in den Bereich des verwendeten Betriebssystems, 1&2 sind zwar auch schon fast BS-abhängig, allerdings sind sie grade noch so auch in den Standards. Also welches Betriebssystem nützt du?
4. Geht ebenfalls mit dem Standard:
// rename, benennt die Datei oldname in newname um int rename( const char *oldname, const char *newname );
Hier gilt wiederrum, 0 bei Erfolg ansonsten:
ENOENT ... File nicht gefunden
EACCES ... Kein Zugriff auf die Datei
EINVAL ... Name enthält ungültige ZeichenBTW: Für das bearbeiten von Dateien kannst du dir auch einmal den dirstream von Hume Sikkins ansehen, siehe dazu auf seiner Homeapge: http://bens.c-plusplus.info
MfG SideWinder
-
weil ich es in konsole schreiben will deswegen dos konsole forum
win2k
-
@ sidewinder meinst du so?
const char path ="C:\jojo\lol.txt";
const *char path = &path;
remove(*path);bitte korrigieren
-
const char path ="C:\jojo\lol.txt";
remove(path);oder
remove("C:\jojo\lol.txt");sollte es auch tun
-
const char* path = "c:\\bla\\blub.dat";
wenn schon...
-
unlink(Dateiname) //Dateien löschen rename(Dateiname_alt,Dateiname_neu) //Dateien umbenennen
mfg Azubi
-
Original erstellt von mady:
**const char* path = "c:\\bla\\blub.dat";
wenn schon...**
huch so habich das ja nochnie gemacht sicher das das tückenfrei ist? ich mein wo wird der String abgelegt?
achso und eigentlich meinte ich
const char path[] ="C:\jojo\lol.txt";
-
@dreaddy: ausser dass Du jetzt einen Vektor erstellst und ich einen Zeiger auf einen String, sehe ich hier erstmal keine Unterschiede in der Deklaration.
Das doppelte '\' ist notwendig, weil ein '\' ein Sonderzeichen (z.B. \n, \t, ...) im String einleitet. Um einen einzelnen Backslash zu erhalten, muss dieser also zweimal geschrieben werden. Deine C-Doku sollte Dir hier weiterhelfen.
-
ich glaub ich fang gleich an zu lachen ^^ Jetz habich das auchnoch übersehn. Das mit dem \\ ist mir schon klar, aber ich sollt glaubich mal meine Brille putzen oder so *schäm* eigentlich ging ich davon aus das man mehr Fehler da nichtmehr machen kann.
Ich frag mich nur ob beispielsweise sowas geht ohne das der Speicher freigegeben wird und unter Umständen überschrieben wird:
char* pointer = "c:\\bla\\blabla.txt"; void f1(void) { pointer = "blabla2"; } int main(void) { f1(); // hier irgendwas machen cout << pointer; // ist es noch definiert das in pointer "blabla2" drinsteht oder ist nur zufällig der freigegebene Speicher noch nicht neu überschrieben? }
-
Was macht ihr hier für ein Theater? Irgendwie wurde schon alles beantwortet was wichtig wäre. Sobald sich der entsprechende meldet kann er ein anderes Forum für eventl. weitere Fragen anbieten wo ich ihn hinschieben werde :).
@$oldier: Ja genau so, nur mit doppelten Backslashes :).
MfG SideWinder
-
jo stimmt habs vergessen thx side und rest gg
-
const char path ="C:\\jojo\\lol.txt";