Ordnerwahl

swaino

Neues Mitglied
Thread Starter
Registriert
28.04.2013
Beiträge
15
Reaktionspunkte
0
Hi Leute,
Ich hab n kleines Problem.
Ich hab folgendes Droplet um Dateien in Ordner zu verschieben und den Namen durch das aktuelle Datum zu ersetzen.

HTML:
set thefolder to display dialog "Wählen sie einen Ordner." default answer ""

set foldername to text returned of thefolder

on open
    set Datum to do shell script "date \"+%d.%m.%Y\""
    tell application "Finder"
        set thefile to get selection
        set Ziel to "Macintosh HD:users:Benutzer:Dokumente:" & Datum
        if not (exists folder Ziel) then
            make new folder at "Macintosh HD:users:Benutzer:Dokumente:"
            set name of folder "Macintosh HD:users:Benutzer:Dokumente:Neuer Ordner" to Datum
        end if
        move thefile to folder Ziel
    end tell
end open

Aber wie kann ich jetzt zwischen verschiedenen Unterordnern wählen?


Angenommen ich hab im Ordner "Dokumente" noch 5 weitere Ordner bei denen ich wählen will in welchen die Datei verschoben werden soll...wie soll ich des dann einbauen?? (Wie der display dialog / if-funktion geht weiß ich.)


Danke schonmal.

 
Schau dir mal choose folder an.
 
Wie meinst du jetzt?
 
Mit

set theFolder to (choose folder)

kannst du per Dialog einen Ordner auswählen. Probiers einfach mal aus.
 
Ok...hab ich eingesetzt.
Aber was stimmt jetzt daran nich:

HTML:
on open
    set thefolder to (choose folder)
    set Datum to do shell script "date \"+%d.%m.%Y\""
    tell application "Finder"
        set theFileList to get selection
        set Ziel to (thefolder & Datum)
        if not (exists folder Ziel) then
            make new folder at thefolder
            set name of folder (thefolder & "Neuer Ordner") to Datum
        end if
        move theFileList to folder Ziel
    end tell
end open
 
thefolder ist eine Variable vom Typ folder. In Zeile 6 und Zeile 9 versuchst du daher an einen folder einen string anzuhängen. Da beide aber unterschiedliche Klassen haben, wird daraus eine Liste und kein string. Um einen string zu erhalten musst du thefolder in einen string umwandeln.

Außerdem solltest du noch folgendes beachten:

- Du benutzt einen open-Handler, fragst dann aber die Dateien über get selection ab. Du kannst auch gleich on open theFileList schreiben und dir die 5. Zeile sparen.
- Beim Erstellen des neuen Ordners kannst du auch gleich den neuen Namen des Ordners festlegen: make new folder at thefolder with properties {name:Datum}
- Statt der if-Abfrage würde ich try benutzen (muss man nicht, mit if geht es genauso). Es erspart dir aber die Probleme mit der Konstruktion der Variable Ziel.

Nach diesen Änderungen könnte das Skript dann so aussehen:

Code:
[COLOR=#4F8F00][FONT=Verdana][COLOR=#000000][B]on[/B] [/COLOR][COLOR=#0433ff][B]open [/B][/COLOR]theFileList[/FONT][/COLOR]
[COLOR=#012FBE][FONT=Verdana][COLOR=#000000]    [B]set[/B] [/COLOR][COLOR=#4f8f00]thefolder[/COLOR][COLOR=#000000] [B]to[/B] ([/COLOR][B]choose folder[/B][COLOR=#000000])[/COLOR][/FONT][/COLOR]
[FONT=Verdana]    [B]set[/B] [COLOR=#4f8f00]Datum[/COLOR] [B]to[/B] [COLOR=#012fbe][B]do shell script[/B][/COLOR] "date \"+%d.%m.%Y\""[/FONT]
[FONT=Verdana]    [B]tell[/B] [COLOR=#0433ff][I]application[/I][/COLOR] "Finder"[/FONT]
[FONT=Verdana]        [B]try[/B][/FONT]
[COLOR=#0433FF][FONT=Verdana][COLOR=#000000]            [B]set[/B] [/COLOR][COLOR=#4f8f00]Ziel[/COLOR][COLOR=#000000] [B]to[/B] [/COLOR][B]make [/B]new [I]folder [/I]at [COLOR=#4f8f00]thefolder [/COLOR]with properties[COLOR=#000000] {[/COLOR][COLOR=#812fdc]name[/COLOR][COLOR=#000000]:[/COLOR][COLOR=#4f8f00]Datum[/COLOR][COLOR=#000000]}[/COLOR][/FONT][/COLOR]
[FONT=Verdana]        [B]on[/B] [B]error[/B][/FONT]
[COLOR=#4F8F00][FONT=Verdana][COLOR=#000000]            [B]set[/B] [/COLOR]Ziel[COLOR=#000000] [B]to[/B] [/COLOR][COLOR=#0433ff][I]folder [/I][/COLOR]Datum[COLOR=#000000] [B]of[/B] [/COLOR]thefolder[/FONT][/COLOR]
[FONT=Verdana]        [B]end[/B] [B]try[/B][/FONT]
[COLOR=#4F8F00][FONT=Verdana][COLOR=#0433ff][B]move [/B][/COLOR]theFileList [COLOR=#0433ff]to [/COLOR]Ziel[/FONT][/COLOR]
[FONT=Verdana]    [B]end[/B] [B]tell[/B][/FONT]
[FONT=Verdana][B]end[/B] [COLOR=#0433ff][B]open
[/B][/COLOR] [/FONT]
 
Danke...
gibts noch irgendeine Möglichkeit, bei der ich zwischen 3 gewählten Ordnern auswählen kann ohne mich durch meinen gesamten Computer suchen zu müssen??
 
Du kannst für choose folder einen Standardordner festlegen:

set theFolder to (choose folder default location alias ":Pfad:")

Oder du probierst es mit choose from list:

set theResult to choose from list {"Desktop", "Bilder", "Filme"}
if theResult contains "Desktop" then
set theFolder to path to desktop
else if theResult contains "Bilder" then
set theFolder to path to pictures folder
else if theResult contains "Filme" then
set theFolder to path to movies folder
end if




 
Zuletzt bearbeitet:
Und wenn ich jetzt die Ordner ändern will wie muss ich dann "set theFolder to path to desktop" abändern?
 
Exakt. Statt "path to desktop" kannst du z.B. alias ":Users:deinName:deinOrdner:" schreiben.
 
Zurück
Oben Unten