Autor Beitrag
JustusJonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Mo 29.12.03 11:55 
Hallo Leute,

ich hoffe irgendjemand kann mir bei meinem Problem helfen, ist echt wichtig!
Also es geht um die Rechnungsarchivierungen in unseren Filialen. Dazu sollen zwei PDF-Dateien auf einen anderen Ordner lokal im Markt und auf unseren Server hier in der Zentrale kopiert werden.
Jede Woche sind es zwei Dateien, eine ist ein paar KiloByte groß und die andere hat ca. 6 MegaByte.
Die Datei mit den paar KB klappt einwandfrei, aber die Datei mit den 6 MB kopiert er nur in das lokale Laufwerk und überhaupt nicht auf unseren Server in der Zentrale. Und selbst auf dem lokalen Laufwerk hat die Datei dann nur noch 0K.

Hier mein Code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
ForceDirectories(BackupDIR);
         OutDateiBackup := BackupDIR + '\' + sr.Name;
         ForceDirectories(ZielDIR);     //Out-Verzeichnis erstellen
         if not ((CopyFile( PChar( InDatei ), PChar( OutDatei ), true)) and (CopyFile( PChar( InDatei ), PChar( OutDateiBackup ), true))) then
           begin
             //ShowMessage(InDatei + ' - ' + OutDatei + ' - ' + OutDateiBackup);
             DeleteFile( PChar( InDatei ));    //Datei löschen
             mMeldung.Lines.Add( GetDatum + ' - ' + GetTime + ': ' + sr.Name + ' wurde kopiert');
           end;
       end;


Liegt das am Kopierbefehl von Delphi selbst, oder habe ich was falsch gemacht?

Greetz

Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt
tomtom62
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 278

WIN 2000, XP prof
D5 prof.
BeitragVerfasst: Mo 29.12.03 12:15 
Wie sehen denn die Dateinamen aus ?. Ist das ein UNC Name für die Kopie auf dem Server oder ??
JustusJonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Mo 29.12.03 13:35 
Ja....vielleicht ein wenig mehr Infos noch:

Die Pfade lese ich aus einer INI-Datei aus:

Zitat:
Name1=Test
Name2=
Name3=

Quelle1=\\192.168.100.255\Archiv\*.*
Quelle2=
Quelle3=

Ziel1=\\192.168.100.255\Archiv.SA\
Ziel2=
Ziel3=

Backup1=\\192.168.100.255\Archiv
Backup2=
Backup3=

Startzeit1=10:00:00
Startzeit2=
Startzeit3=
#Format hh:mm:ss


So sieht meine INI aus!
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.12.03 18:14 
Probier´s doch mal spaßeshalber durch einen Aufruf von Suche in: Delphi-Forum, Delphi-Library SHFILEOPERATION. Damit kopierst du die Datei mit der Methode, die auch der Explorer benutzt. Vorteil: du hast einen Dialog mit Progressbar und damit eine visuelle Kontrolle über den Vorgang. Evtl. macht ja auch irgendwer die Verbindung vorzeitig zu. Ich meine, 6meg wollen ja erst mal kopiert werden.

Außerdem macht mir das "not" in deiner if-Bedingung irgendwie Sorgen, aber einen Sinn wird´s sicher haben. ;)
JustusJonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 222



BeitragVerfasst: Fr 02.01.04 12:59 
MathiasSimmack hat folgendes geschrieben:
Probier´s doch mal spaßeshalber durch einen Aufruf von Suche in: Delphi-Forum, Delphi-Library SHFILEOPERATION. Damit kopierst du die Datei mit der Methode, die auch der Explorer benutzt. Vorteil: du hast einen Dialog mit Progressbar und damit eine visuelle Kontrolle über den Vorgang. Evtl. macht ja auch irgendwer die Verbindung vorzeitig zu. Ich meine, 6meg wollen ja erst mal kopiert werden.

Außerdem macht mir das "not" in deiner if-Bedingung irgendwie Sorgen, aber einen Sinn wird´s sicher haben. ;)


Na wenn der Kopiervorgang NICHT fehlgeschlagen ist, es also geklappt hat, dann soll er die Datei erst löschen, vorher nicht! :)
Das war zumindest meine Logik und bisher hat es auch so geklappt! ;)

Habe es jetzt mit SHFILEOPERATION probiert. Der Vorteil mit der Progressbar nützt mir zwar nix, da sich das Programm eh in der TNA befindet und der User davon nichts mitbekommen soll, aber so wie's aussieht scheint das Programm jetzt zu laufen!

Greetz & Danke!