Abfrage ob Verzeichnis leer ist?

ObiTobi

Aktives Mitglied
Thread Starter
Dabei seit
05.11.2009
Beiträge
1.536
Reaktionspunkte
91
Hallo,

irgendwie in dem Buch was ich hier vorliegen habe "AppleScript 1-2-3" ist zwar viel Text aber so toll finde ich das ganze irgendwie nicht :( (man beschäftigt sich meiner Meinung nach mit Sachen die keiner so richtig braucht).

Gibt es eine Funktion zu prüfen ob eine Verzeichnis leer ist?
Irgendwo im Netz fand ich da naheliegende (is empty) aber das ist es wohl nicht, zumindest führt es nicht zu erwarteten Ergebnis.

Gruß Tobi
 
Du findest alle Befehle zu allen Programmen im AppleScript-Editor unter Ablage->Funktionsverzeichnis. Dort wird auch besagtes empty erklärt (Spoiler: damit leert man den Papierkorb, es ist also ein Befehl, keine Eigenschaft).

Für dein Problem gibt es meines Wissens nach keinen eigene Eigenschaft eines Ordners, die man abfragen könnte. Du könntest aber einfach alle items von diesem Ordner abfragen, ist die Liste leer, ist auch der Ordner leer (Achtung hier mit versteckten Dateien!).
 
Bei AppleScript nicht, du verwechselst das mit der Shell ;)
 
Das mag gut sein, arbeite auch sont fast immer mit der Bash.
Dann schaue ich mal was ich hier ausrichten kann.

Danke auf jedem Fall für die Auskunft und Ideen.

Tobi
 
Wird dann nicht immer ". und .." als Item existieren?

Kommt darauf an, wie du suchst.
Wenn du die Standard Finder-Ansicht mit ausgeblendeten unsichtbaren Dateien benutzt und wissen möchtest, ob ein Ordner so leer ist, wie im Finder zu sehen, so wendest du dich im AppleScript auch an dieses Programm.

Nimm mal einen Ordner mit einer unsichtbaren Datei (z.B. ".DS_Store"):

Code:
set x to "Pfad:Ordner"

# 1)
count of (list folder x without invisibles)
# 2)
count of (list folder x)
# 3)
tell application "Finder"
count of files of folder x
end tell
# 4)
tell application "System Events"
count of files of folder x
end tell
 
Man beachte hierbei auch den Unterschied zwischen files und items
 
Vielleicht stelle ich mich doch etwas an aber ich verstehe den o.g Beispiel nicht wirklich :confused:

Da einzige Unterschied was ich so erkennen kann ist, dass Du mal den Finder mal "System Events" abfragst. Systems Events "sieht" das etwas anders.

Was

# 1)
count of (list folder x without invisibles)
# 2)
count of (list folder x)

für einen Unterschied in dem Code machen soll ist mir nicht klar, zumindest an den Ergebnissen ändert sich gar nichts egal ob beide Zeilen drin oder nur eine davon, ob mit "without" oder "with"

Tobi
 
Einmal werden unsichtbare Dateien mit aufgelistet, einmal nicht.
 
Das war womöglich die Idee, die kann ich aber bei mir nicht bestätigen.
Ich erstelle ein Verzeichnis und packe 2 Dateien dahin (.DS_Store und testfile.txt). Egal was ich anstelle - der Part mit Finder liefert als Antwort 1 und Part mit System Events immer 2
 
Gehe ich recht in der Annahme, das Du leere Verzeichnisse finden und löschen möchtest? So wie auch ich einst auf der Suche war eine Möglichkeit zu finden um in Capture One erstellte Verzeichnisse, welche später leer sind weil man alle Bilder der Session gelöscht hat, aufzuspüren und zu löschen? Hier bin ich fündig geworden: Leere Ordner finden und löschen lassen, per Automator-Script
 
Das war womöglich die Idee, die kann ich aber bei mir nicht bestätigen.
Ich erstelle ein Verzeichnis und packe 2 Dateien dahin (.DS_Store und testfile.txt). Egal was ich anstelle - der Part mit Finder liefert als Antwort 1 und Part mit System Events immer 2

Ich glaube wir reden aneinander vorbei. Du sagst doch selbst, dass einmal versteckte Dateien angezeigt werden und einmal nicht. Genauer gesagt ist das Ergebnis bei

1. ohne versteckte Dateien
2. mit versteckten Dateien
3. ohne versteckte Dateien
4. mit versteckten Dateien

Es gibt also verschiedene Möglichkeiten den Inhalt eines Ordners abzufragen, je nach Möglichkeit werden versteckte Dateien angezeigt oder nicht.

Edit: Leere Verzeichnisse lassen sich im Terminal so löschen:
Code:
find /Pfad/Ordner/ -depth -type d -empty -exec rmdir {} \;
 
Zurück
Oben Unten