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.

FindAllFiles
Started by
hmoeckel
, Oct 18 2004 12:57
9 replies to this topic
Posted 18 October 2004 - 12:57
Hallo
ich arbeite mit IS 7.
Ich habe folgendes Verhalten der Installscript-Funktion 'FindAllFiles' festgestellt:
Ich will mir alle Dateien
"*.ntf"
im Verzeichnis
'D:\aapart\data1\iQSuite"
ausgeben lassen.
Dazu benutze ich folgenden Code:
szDir = "D:\aapart\data1\iQSuite";
szPattern = "*.ntf";
nResult2 = FindAllFiles ( szDir, szPattern, szFile, RESET);
while(nResult2 = 0)
...
...
// Find the next matching file name.
nResult2 = FindAllFiles( szDir, szPattern, szFile, CONTINUE);
endwhile;
Das Programm liefert mir alle in 'szDir' vorhandenen ntf-Files gleich doppelt, sowie weiter ntf-Files in hierarchisch drüber liegenden Verzeichnissen.
etwa so:
xxx FileList Entry: D:\aapart\data1\iQSuite\gd_grab.ntf
xxx FileList Entry: D:\aapart\data1\iQSuite\gm_grab.ntf
xxx FileList Entry: D:\aapart\data1\iQSuite\g_arch.ntf
xxx FileList Entry: D:\AApart\data1\iQSuite\gd_grab.ntf
xxx FileList Entry: D:\AApart\data1\iQSuite\gm_grab.ntf
xxx FileList Entry: D:\AApart\data1\iQSuite\g_arch.ntf
xxx FileList Entry: D:\AApart\data2\alog4.ntf
xxx FileList Entry: D:\AApart\data2\archlg50.ntf
xxx FileList Entry: D:\AApart\data2\billing.ntf
xxx FileList Entry: D:\AApart\data2\webadmin.ntf
xxx FileList Entry: D:\AApart\data2\iQSuite\gd_grab.ntf
xxx FileList Entry: D:\AApart\data2\iQSuite\gm_grab.ntf
xxx FileList Entry: D:\AApart\data2\iQSuite\g_arch.ntf
xxx FileList Entry: D:\AApart\data3\alog4.ntf
xxx FileList Entry: D:\AApart\data3\archlg50.ntf
xxx FileList Entry: D:\AApart\data3\billing.ntf
xxx FileList Entry: D:\AApart\data3\bookmark.ntf
xxx FileList Entry: D:\AApart\data3\busytime.ntf
xxx FileList Entry: D:\AApart\data3\cache.ntf
xxx FileList Entry: D:\AApart\data3\catalog.ntf
Da mein Installationsprogramm diese gefundenen Dateien loeschen soll, ist das Ergebnis ziemlich fatal.
Hat jemand ne Idee was da schief laeuft.
Danke im Voraus
ich arbeite mit IS 7.
Ich habe folgendes Verhalten der Installscript-Funktion 'FindAllFiles' festgestellt:
Ich will mir alle Dateien
"*.ntf"
im Verzeichnis
'D:\aapart\data1\iQSuite"
ausgeben lassen.
Dazu benutze ich folgenden Code:
szDir = "D:\aapart\data1\iQSuite";
szPattern = "*.ntf";
nResult2 = FindAllFiles ( szDir, szPattern, szFile, RESET);
while(nResult2 = 0)
...
...
// Find the next matching file name.
nResult2 = FindAllFiles( szDir, szPattern, szFile, CONTINUE);
endwhile;
Das Programm liefert mir alle in 'szDir' vorhandenen ntf-Files gleich doppelt, sowie weiter ntf-Files in hierarchisch drüber liegenden Verzeichnissen.
etwa so:
xxx FileList Entry: D:\aapart\data1\iQSuite\gd_grab.ntf
xxx FileList Entry: D:\aapart\data1\iQSuite\gm_grab.ntf
xxx FileList Entry: D:\aapart\data1\iQSuite\g_arch.ntf
xxx FileList Entry: D:\AApart\data1\iQSuite\gd_grab.ntf
xxx FileList Entry: D:\AApart\data1\iQSuite\gm_grab.ntf
xxx FileList Entry: D:\AApart\data1\iQSuite\g_arch.ntf
xxx FileList Entry: D:\AApart\data2\alog4.ntf
xxx FileList Entry: D:\AApart\data2\archlg50.ntf
xxx FileList Entry: D:\AApart\data2\billing.ntf
xxx FileList Entry: D:\AApart\data2\webadmin.ntf
xxx FileList Entry: D:\AApart\data2\iQSuite\gd_grab.ntf
xxx FileList Entry: D:\AApart\data2\iQSuite\gm_grab.ntf
xxx FileList Entry: D:\AApart\data2\iQSuite\g_arch.ntf
xxx FileList Entry: D:\AApart\data3\alog4.ntf
xxx FileList Entry: D:\AApart\data3\archlg50.ntf
xxx FileList Entry: D:\AApart\data3\billing.ntf
xxx FileList Entry: D:\AApart\data3\bookmark.ntf
xxx FileList Entry: D:\AApart\data3\busytime.ntf
xxx FileList Entry: D:\AApart\data3\cache.ntf
xxx FileList Entry: D:\AApart\data3\catalog.ntf
Da mein Installationsprogramm diese gefundenen Dateien loeschen soll, ist das Ergebnis ziemlich fatal.
Hat jemand ne Idee was da schief laeuft.
Danke im Voraus
Posted 19 October 2004 - 08:55
Ich weiss nicht, ob es daran lioegt, aber ändere auf jeden Fall mal dies:
szDir = "D:\\aapart\\data1\\iQSuite";
szDir = "D:\\aapart\\data1\\iQSuite";
Stefan Krüger
InstallSite.org twitter facebook
Posted 19 October 2004 - 09:26
Leider ist das nicht das problem.
Es gibt Zuweisung an szDir, das habe ich nur geschrieben, um für das Beispiel den Wert dieser variablen zu erlaeuteren.
In der Realitaet wird der Wert von szDir aus einem Property ermittelt, und dieser String sieht ganz gut aus
danke
Es gibt Zuweisung an szDir, das habe ich nur geschrieben, um für das Beispiel den Wert dieser variablen zu erlaeuteren.
In der Realitaet wird der Wert von szDir aus einem Property ermittelt, und dieser String sieht ganz gut aus
danke
Posted 19 October 2004 - 09:50
okay. Was machst du wenn die Datei gefunden wurde (also die ... in der while Schleife)? Nicht etwa XCopyFile, oder?
Stefan Krüger
InstallSite.org twitter facebook
Posted 19 October 2004 - 10:06
so hat es angefangen
dann habe ich mal die OnLine-Hilfe studiert, XCopyFile durch Copyfile ersetzt. Ohne Aenderung des Verhaltens.
Dann habe ich in der Schleife eine String-Liste aufgebaut.( ListAddString) und spaeter die Stringliste abgeklappert zum Kopieren. Ohne Aenderung des Verhaltens..
Dann habe ich die Schleife quasi leer gelassen und mir lediglich im Debugger angeschaut, was passiert. Immer noch der selbe Effekt.
Im Augenblick habe ich den workaround implementiert, dass ich den gefundenen String( Filenamen) darauf hin ueberpruefe, ob mein Pfad( szDir) darin enthalten ist. Nur dann nehme ich ihn in meine Liste auf. Das ist natuerlich nicht so elegant.
dann habe ich mal die OnLine-Hilfe studiert, XCopyFile durch Copyfile ersetzt. Ohne Aenderung des Verhaltens.
Dann habe ich in der Schleife eine String-Liste aufgebaut.( ListAddString) und spaeter die Stringliste abgeklappert zum Kopieren. Ohne Aenderung des Verhaltens..
Dann habe ich die Schleife quasi leer gelassen und mir lediglich im Debugger angeschaut, was passiert. Immer noch der selbe Effekt.
Im Augenblick habe ich den workaround implementiert, dass ich den gefundenen String( Filenamen) darauf hin ueberpruefe, ob mein Pfad( szDir) darin enthalten ist. Nur dann nehme ich ihn in meine Liste auf. Das ist natuerlich nicht so elegant.
Posted 19 October 2004 - 10:10
Hast du mal versucht, den szDir einen abschließenden Backslash mitzugeben?
Stefan Krüger
InstallSite.org twitter facebook
Posted 19 October 2004 - 10:38
Dann fällt mir auch nichts mehr ein
Stefan Krüger
InstallSite.org twitter facebook
Posted 19 October 2004 - 10:54
vielleicht kannst Du mal den scriptauschnitt hier hinein stellen.
es scheint alles in ordnung zu sein, aber anscheinend wird in der schleife das verzeichnis verändert, so dass dann auch weitere gefunden werden.
wenn es dir nur um das angegebene verzeichnis geht, könntest du in der schleife prüfen, ob du dich noch im verzeichnis befindest ...
es scheint alles in ordnung zu sein, aber anscheinend wird in der schleife das verzeichnis verändert, so dass dann auch weitere gefunden werden.
wenn es dir nur um das angegebene verzeichnis geht, könntest du in der schleife prüfen, ob du dich noch im verzeichnis befindest ...
Gruß / regards
Thomas
Thomas