Veröffentlicht 14. August 200322 j 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?
14. August 200322 j Kennst du denn deinen "Datenbankordner"? Wenn ja, dann setz doch einfach diesen Pfad vor "\temp\Dateiname". Zum Kopieren gibt es CopyFile.
14. August 200322 j 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?
14. August 200322 j 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
14. August 200322 j 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.
15. August 200322 j 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
15. August 200322 j test=test->Replace("\","\\"); Nur geraten: test=test->Replace("\\","\\\\"); So vielleicht?
15. August 200322 j 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.
16. August 200322 j 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).
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.