Hallo Willem,
mit dem Zusatz von with replacing wird genau das Gegenteil erreicht: Ein Ordner wird
ohne Warnmeldung ersetzt. Ob er nun leer ist oder nicht spielt keine Rolle.
Der im ersten Script vorhandene try-Wickel unterdrückt eine Warnmeldung, wenn ein Ordner
desselben Namens schon existiert. Zudem wird ein gleichnamiger Ordner nicht ersetzt.
Man müsste also ein on error einbauen, um bei einem "Fehler", d.h. wenn ein Ordner desselben
Namens vorhanden ist, entsprechende Aktionen auszulösen: Den Namen des zu bewegenden
Ordners speichern und dem Zielordnerpfad anhängen. Dann kann mit list folder der Inhalt
geprüft werden. Wichtig ist das without invisibles, damit eventuell vorhandene, unsichtbare
Dateien – wie "Icon" oder ".DS_Store" – nicht einen richtigen Inhalt vortäuschen.
Wenn die Liste fileList leer ist, kann der Ordner ersetzt werden.
---
try
tell application "Finder" to move folder aObject to folder allFolders
on error
tell application "Finder" to set folderName to name of folder aObject
tell application "Finder" to set oldFolder to (folder folderName of folder allFolders) as Unicode text
set fileList to list folder oldFolder without invisibles
if fileList is {} then
tell application "Finder" to move folder aObject to folder allFolders with replacing
[color=#0000FF]end if
end try[/color]
---
Aber was sollte das Script tun, wenn ein gleichnamiger Ordner existiert und dieser Dateien
enthält? Mit der obigen Ergänzung geschieht nichts. Kein Ersetzen, aber auch keine Meldung
oder ein Eintrag in eine Logdatei.
Gruss, Hans
als Antwort auf: [#421459]