MeisterB Geschrieben 14. August 2003 Geschrieben 14. August 2003 Da ich es nicht hinbekommen habe Dateien in meiner Accessdatenbank zu Speichern, muss ich jetzt den Umweg über normales Kopieren gehen! Ich speichere jetzt nur noch den Pfadnamen in der Datenbank und das Programm soll entsprechend die Dateien kopieren. Also Benutzer gibt per OpenFileDialog Datei an -> diese soll in einen Ordner mit den ganzen in der Datenbank gespeicherten Dateien kopiert werden. Der neue Pfad wird in Datenbank gespeichert und wenn Benutzer Datei wieder braucht wird der Pfad aus der Datenbank gelesen und die Datei wieder in einen vom Benutzer angegebenen Ordner kopiert. Soviel zu Theorie. Praktisch bin ich soweit: per OpenFileDialog kann ich den Pfad der Datei ermitteln! Die Datei soll im temp-Verzeichnis des Datenbankordner gespeichert werden(da dieser aber frei kopiert werden kann ist ein c:\Datenbankordner\temp nicht möglich). Wie bekomme ich jetzt das Kopieren hin? Zitieren
Klotzkopp Geschrieben 14. August 2003 Geschrieben 14. August 2003 Kennst du denn deinen "Datenbankordner"? Wenn ja, dann setz doch einfach diesen Pfad vor "\temp\Dateiname". Zum Kopieren gibt es CopyFile. Zitieren
MeisterB Geschrieben 14. August 2003 Autor Geschrieben 14. August 2003 Hab das mit dem CopyFile getestet und erhalte diese Fehlermeldung: error C3861: 'CopyFile': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden muss ich noch irgendwas includieren bzw. namespace usen? Zitieren
MeisterB Geschrieben 14. August 2003 Autor Geschrieben 14. August 2003 Ok musste windows.h inlcudieren aber wie wandle ich jetzt den Pfad der Datei in das richtige Format für diesen Befehl um? Hier mein Testcod (in label1->Text ist der Pfad gespeichert). CopyFile(label1->Text,S"c:\test\test.dat",true); und hier die allseits beliebte Fehlermeldung: error C2664: 'CopyFileA': Konvertierung des Parameters 1 von 'System::String __gc *' in 'LPCSTR' nicht möglich Zitieren
Klotzkopp Geschrieben 14. August 2003 Geschrieben 14. August 2003 Original geschrieben von MeisterB error C2664: 'CopyFileA': Konvertierung des Parameters 1 von 'System::String __gc *' in 'LPCSTR' nicht möglich Für managed C++ verwendest du wohl besser System.IO.File.Move. Zitieren
MeisterB Geschrieben 15. August 2003 Autor Geschrieben 15. August 2003 Ich kann zwar jetzt Strings in der FileCopy-Anweisung benutzen aber sie müssen so aussehen: C:\\Ordner\\Ordner2\\ wie kann ich nun aus "C:\frei\test\" "C:\\frei\\test\\" machen? hab es mit Replace versucht aber wenn ich das so mache: String* test="C:\frei\test\"; test=test->Replace("\","\\"); erhalte ich diese Fehlermeldung: error C2017: Ungültige ESCAPE-Sequenz error C2001: Zeilenumbruch innerhalb einer Konstanten Zitieren
maxim_42 Geschrieben 15. August 2003 Geschrieben 15. August 2003 test=test->Replace("\","\\"); Nur geraten: test=test->Replace("\\","\\\\"); So vielleicht? Zitieren
Klotzkopp Geschrieben 15. August 2003 Geschrieben 15. August 2003 Original geschrieben von MeisterB Ich kann zwar jetzt Strings in der FileCopy-Anweisung benutzen aber sie müssen so aussehen: C:\\Ordner\\Ordner2\\ So müssen die Pfade nur aussehen, wenn sie in deinem Quellcode stehen. Keinesfalls musst du einen eingelesenen oder aus einer anderen Funktion zurückgegebenen String so bearbeiten. Also bitte kein Replace. Zitieren
MeisterB Geschrieben 16. August 2003 Autor Geschrieben 16. August 2003 Original geschrieben von Klotzkopp So müssen die Pfade nur aussehen, wenn sie in deinem Quellcode stehen. Keinesfalls musst du einen eingelesenen oder aus einer anderen Funktion zurückgegebenen String so bearbeiten. Also bitte kein Replace. Bist du sicher? Ich lasse mir zwar per FileOpen-Dialog den Pfad ermitteln aber trotzdem muss ich die \ durch \\ ersetzten(was ich dank Maxim_42 jetzt hinbekommen habe). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.