Jump to content


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.
Photo

FindAllFiles


9 replies to this topic

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

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

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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";

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

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

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

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?

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

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.

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 October 2004 - 10:10

Hast du mal versucht, den szDir einen abschließenden Backslash mitzugeben?

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 19 October 2004 - 10:33

szDir hat einen abschliessenden Backslash
'D:\aapart\data1\iQSuite\'

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 19 October 2004 - 10:38

Dann fällt mir auch nichts mehr ein

hmoeckel

hmoeckel
  • Full Members
  • 97 posts

Posted 19 October 2004 - 10:39

trotzdem danke fuer deine bemuehungen

Perotin

Perotin
  • Full Members
  • 407 posts

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 ...
Gruß / regards
Thomas