Hallo,
Ich benutze IS7SP2 Englisch.
Bei folgender Funktion erhalte ich bei einigen Dateien, welche ich vergleiche den Fehler -1.
SRCDIR verweist z.B. auf F:\Test und TARGETDIR auf C:\Test. F ist ein Serverlaufwerk.
Die Dateien lassen sich mit dem Explorer kopieren. Auf C sind die Dateien nicht vorhanden.
szSrcFile = Datei1.exe
szTargetFile = Datei1.exe
nFileCompare = FileCompare ( SRCDIR ^ szSrcFile , TARGETDIR ^ szTargetFile , COMPARE_DATE );
if nFileCompare != 2 then
nCopy = CopyFile ( szSrcFile, szTargetFile);
endif;
Hat jemand eine Idee, warum dieser Aufruf nicht funktioniert? nCopy = -2147024809
Vielen Dank
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
FileCompare/XCopyFile/CopyFile
Started by
Eagle
, Jun 10 2003 13:03
2 replies to this topic
Posted 10 June 2003 - 15:15
Habe den Fehler gefunden.
Ich habe mehrere Dateien kopiert ( über 100) und Statusupdate(ON,AnzahlderDateien) gesetzt. Bei 100 %, also 100 Dateien hat InstallShield "falscher Parameter" zurückgeliefert, da die Statusanzeige nicht aktualisiert werden konnte.
Viele Grüße
Ich habe mehrere Dateien kopiert ( über 100) und Statusupdate(ON,AnzahlderDateien) gesetzt. Bei 100 %, also 100 Dateien hat InstallShield "falscher Parameter" zurückgeliefert, da die Statusanzeige nicht aktualisiert werden konnte.
Viele Grüße
Ciao Thomas
Posted 26 June 2003 - 08:44
Hallo,
ich weiß nicht ob Du es gelöst hast, aber ich hatte mal ein fast gleiches Problem - bei mir waren es nur wesentlich mehr Dateien.
Ich ermittle die Anzahl der Dateien im Vorfeld und schreibe sie in eine Liste so etwa wie:
SRCDIR = svQuelle;
lMyList = ListCreate(STRINGLIST);
nFind = FindAllFiles ( SRCDIR , "*.*" , svFile , RESET );
while nFind=0
ListAddString(lMyList1, svFile, AFTER);
nItem = nItem + 1;
nFind = FindAllFiles ( SRCDIR , "*.*" , svFile ,CONTINUE );
endwhile;
Dann habe ich die Anzahl der Elemente in nItem und eine Liste aller Dateien. Das kann man dann noch ggf. auf andere Verzeichnisse ausdehnen.
Am Ende dann eine Schleife über alle Elemente. Eine Variable i wird hochgezählt und die aktuelle Prozentzahl kann errechnet werden
i = i + 1;
Posx = (i *100) / nItemp;
SetStatusWindow (Posx, @ID_MYMSG);
...
Gruß
Christof
ich weiß nicht ob Du es gelöst hast, aber ich hatte mal ein fast gleiches Problem - bei mir waren es nur wesentlich mehr Dateien.
Ich ermittle die Anzahl der Dateien im Vorfeld und schreibe sie in eine Liste so etwa wie:
SRCDIR = svQuelle;
lMyList = ListCreate(STRINGLIST);
nFind = FindAllFiles ( SRCDIR , "*.*" , svFile , RESET );
while nFind=0
ListAddString(lMyList1, svFile, AFTER);
nItem = nItem + 1;
nFind = FindAllFiles ( SRCDIR , "*.*" , svFile ,CONTINUE );
endwhile;
Dann habe ich die Anzahl der Elemente in nItem und eine Liste aller Dateien. Das kann man dann noch ggf. auf andere Verzeichnisse ausdehnen.
Am Ende dann eine Schleife über alle Elemente. Eine Variable i wird hochgezählt und die aktuelle Prozentzahl kann errechnet werden
i = i + 1;
Posx = (i *100) / nItemp;
SetStatusWindow (Posx, @ID_MYMSG);
...
Gruß
Christof