Kein Problem!CNESM hat geschrieben:Was mit jetzt noch ein Problem aufwirft, ist das von AND51 aufgezeigte Verhalten der Procedur (Danke schonmal dafür!!). Hatte ich im ganzen Hin und Her nicht beachtet!

Die einzige Lösung ist folgende:
Wenn ich feststelle, dass "C:\myOrdner\temp" doch nich leer ist, darf ich ihn nur löschen, wenn "C:\myOrdner\temp\leer" leer ist. Mit anderen Worten: Ich darf einen Ordner nur löschen, wenn alle anderen Ordner da drin auch leer sind (beachte: in "temp" könnten ja zum Beispiel auch die Ordner "leer1" und "leer2" enthalten sein).
Lösungsanzsatz: Ich würde versuchen, so rekursiv zu arbeiten, wie viele Beispielcode aus diesem Forum. (So wie vonTurnundTaxis.) Dabei sollte die Mödlichkeit, mit ProcedureReturn einen Wert zurückgeben zu können, unbedingt genutzt werden; beispielsweise um die Anzahl der Dateien im aktuellen Order zurückzugeben.
Beispiel: Ich scanne den Ordner "C:\myOrdner\temp". Wegen der Rekusivität ruft sich die Procedure selbst nocheinmal auf und scannt "C:\myOrdner\temp\leer". Es wird die zahl 0 zurückgegeben, weil 0 Dateien im Ordner "leer" sind. Diese Zahl 0 wird zu der Gesamtanzahl der Dateien hinzuaddiert, die im Ordner "C:\myOrdner\temp" entahlen sind. Die Summe lautet 0, es sind also 0 Dateien in temp + 0 Dateien in leer. Das Ergebnis 0gibst du wiederum mit ProcedureReturn zurück, und so weiter. Ein Verzeichnis darf dann nur gelöscht werden, wenn das Ergebnis 0 ist.
Wie gesagt, in vonTurnundTaxis' Code kannst du das gut sehen. Allerdings solltest du auf
> If Not_Empty = 0
verzichten und stattdessen
> If Not Not_Empty
verwenden. (Daran sieht man, wer sich schon wie weit auf die neuen PB 4-Features eingelassen hat

@ vonTurnundTaxis: Warum benutzt du kein BREAK nach der Zeile, in der du Not_Empty auf 1 setzt? Dann wird dein Code sehr viel schneller! Aber bitte, wenn du nicht magst...
