• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Der Frühling ist auch in den eingesandten Fotos deutlich zu erkennen. Zeigt uns, wer Euer Favorit ist! hier geht es lang für Euer Voting --> Klick

Abfragen der Eigenschaft "folder" oder "file" und Dateigröße bestimmen

Streptokokke

Jonagold
Registriert
11.12.10
Beiträge
21
Hallo,

ich bastle an einem Droplet, um wichtige Dateien extern zu sichern. Ich würde dabei gerne unterscheiden ob ich einen Ordner übergebe oder eine File, damit ich bei einem Ordner überprüfen kann wie groß er ist (falls er den den Restspeicherplatz des externen Mediums überschreitet, dann Fehlermeldung angedacht).

Erstes Problem: Unterscheidung file/folder: Alle bisherigen Versuche gingen in die Richtung:
Code:
on open a
	
	tell application "System Events"
		
		if class of item a is folder then
			copy folder a to ...
			
		else if class of item a is file then
			copy file a to ...
		end if
	end tell
		
end open


Zweites Problem: Wie fragt man die Dateigröße ab? Finde überhaupt nichts


Vielen Dank,
Philipp
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
Hi,

für den ersten Teil sollten dir diese beiden Beispiele helfen. Einfach im ScriptEditor ausführen und das Ergebnis anschauen. :)

Code:
set myFileAlias to (choose folder)

set myFileRef to item (myFileAlias as string) of app "system events"

tell app "system events" to	class of myFileRef

Code:
set myFileAlias to (choose file)

set myFileRef to item (myFileAlias as string) of app "system events"

tell app "system events" to	class of myFileRef
end tell


Hintergrund: Wenn du dem Droplet Dateien/Ordner übergibst, sind diese immer Aliase. Die Class eines Alias ist immer "alias". Willst du die "richtige" Class von bzw. durch System Events (oder auch Finder) erfahren, musst du den Alias erst in eine Referenz umwandeln.




Die Dateigröße ist ne property:
Code:
set myFileAlias to (choose file)

set myFileRef to item (myFileAlias as string) of app "system events"

tell app "system events" to physical size of myFileRef
Gibt dir die Bytes.



Alle properties kannst du so sehen:
Code:
set myFileAlias to (choose file)

set myFileRef to item (myFileAlias as string) of app "system events"

tell app "system events" to properties of myFileRef

Oder halt in der Library für System Events nachgucken (CMD+SHIFT+L) oder aus dem Fenster-Menü
 

Streptokokke

Jonagold
Registriert
11.12.10
Beiträge
21
Hallo fyysh,
vielen Dank für die gute Erklärung, jetzt versteh ich meine Fehlermeldung. Ich war in der Library, war aber wohl zu unerfahren um zu wissen wie suchen.
Morgen werd ichs testen.

Dank dir sehr