file.Rename(old,new)
-
Hi Leute
Ich habe Schwierigkeiten mit dem Befehlt file.Rename();
meine Codezeilen:
CFile SOURCEFILE ("MDT Test/Tempfile.txt", CFile::modeReadWrite); ... char cErrorfile[100]; sprintf(&cErrorfile[0], "MDT Test/Error im Durchlauf %d.txt", iDURCHLAUF); CString CStrErrorfile = cErrorfile; SOURCEFILE.Rename("MDT Test/Tempfile.txt", CStrErrorfile); ...Er gibt mir als Fehlermeldung, dass die Zugriffsrechte nicht stimmen. Welchen Mode muss ich stattdessen einstellen?
Danke schonmal für Deine Hilfe
-
Also so wie ich das aus der MSDN verstehe geht das nur so:
CString strOldPath, strNewPath; // Alter und neuer Pfad, voller Pfad muss angegeben werden!! CFile::Rename(strOldPath, strNewPath);CFile::Rename ist nämlich eine static Funktion und kann deswegen nicht auf Variablen in der Klasse selbst zugreifen. Deshalb musst du auch den vollen Pfad angeben.
und übrigens noch was in deinem Codeausschnitt:
char cErrorfile[100]; ASSERT(cErrorfile == &cErrorfile[0]); // Oder anderst gesagt, das ist das selbeDesweiteren:
CString strErrorfile; strErrorfile.Format(_T("MDT Test/Error im Durchlauf %d.txt"), iDURCHLAUF);
Grüssli
-
Gar keinen - die Datei darf (vermutlich) gar nicht geöffnet sein, wenn du sie umbenennen willst:
char cErrorfile[100]; sprintf(&cErrorfile[0], "MDT Test/Error im Durchlauf %d.txt", iDURCHLAUF); CString CStrErrorfile = cErrorfile; CFile::Rename("MDT Test/Tempfile.txt", CStrErrorfile);(darum ist Rename() auch eine statische Methode)
-
Du kannst keine offene Datei umbennenen.
Datei vorher schliessen!
-
CStoll schrieb:
Gar keinen - die Datei darf (vermutlich) gar nicht geöffnet sein, wenn du sie umbenennen willst:
char cErrorfile[100]; sprintf(&cErrorfile[0], "MDT Test/Error im Durchlauf %d.txt", iDURCHLAUF); CString CStrErrorfile = cErrorfile; CFile::Rename("MDT Test/Tempfile.txt", CStrErrorfile);(darum ist Rename() auch eine statische Methode)
Das war's danke!
-
Jo, aber der Code ist wie er da steht wirklich rel. sinfrei...
CString strError; strError.Format("MDI Test/Error im Durchlauf %d.txt", iDurchlauf); CFile::Rename("MDI Test/Tempfile.txt" strError);PS: Wenn du die Ungarische Notation benutzen willst, dann durchgehend (C steht für Class ...) ...