[GastForen Programmierung/Entwicklung AppleScript Ordneraktion: Files automatisch verschieben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Ordneraktion: Files automatisch verschieben

truni
Beiträge gesamt: 98

29. Jun 2004, 10:58
Beitrag # 1 von 3
Bewertung:
(5286 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Möchte eine Orderaktion unter OSX erstellen: sobald ein File (eine PS Datei) in einem "Hotfolder" lokal erstellt wurde (fertig geschrieben ist), diese auf ein definiertes Servervolumen verschieben. Kann man dies mit einer Ordneraktion hinterlegen als AppleScript? Weiss jemand wie?

Danke
X

Ordneraktion: Files automatisch verschieben

Hans Haesler
  
Beiträge gesamt: 5826

1. Jul 2004, 16:32
Beitrag # 2 von 3
Beitrag ID: #418848
Bewertung:
(5285 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo truni,

eine Ordneraktion wird z.B. ausgelöst, wenn Objekte in einen Ordner kopiert werden. Dann werden die Befehle, welche im Script definiert sind, ausgeführt. Wenn eine Datei in einem per Ordneraktion überwachten Ordner erzeugt wird, dann hat man das Problem zu lösen, dass die Verschiebung erst vorgenommen wird, wenn die Datei komplett ist.

Eine Möglichkeit ist, die Grösse der Datei zu überwachen und wenn sie nicht mehr zunimmt, den Befehl zum Verschieben aufzurufen. Ein anderer Ansatz: Den 'busy status' prüfen und die Datei erst verschieben wenn dieser als 'false' zurückgegeben wird. Aber wenn ich mich richtig erinnere, dann sind beide Lösungen als unzuverlässig gemeldet worden.

Deshalb würde ich fürs erste auf eine Überwachung verzichten und sofort dem Finder den Befehl zum Verschieben geben:
---
global targetFolder

on adding folder items to this_folder after receiving these_items
  getPath()
  try
    targetFolder as alias
  on error
    set targetFolder to (choose folder with prompt "Den Zielordner auswählen") as string
    writePath()
  end try
  repeat with aFile in these_items
    try
      tell application "Finder" to move aFile to folder targetFolder with replacing
    end try
    exit repeat
  end repeat
end adding folder items to

on getPath()
  try
    set targetFolder to read file ((path to "cusr" as string) & "Librarys:" & "zielordnerpfad.txt")
  on error
    set targetFolder to (choose folder with prompt "Den Zielordner auswählen") as string
    writePath()
  end try
end getPath

on writePath()
  set filePath to ((path to "cusr" as string) & "Librarys:" & "zielordnerpfad.txt")
  try
    open for access file filePath with write permission
    set eof of file filePath to 0
    write targetFolder to file filePath
    close access file filePath
  on error
    try
      close access file filePath
    end try
  end try
end writePath
---

Die Handler 'getPath()' und 'writePath()' werden gebraucht, um den Pfad zum Zielordner zu speichern. Unter Mac OS X muss es so umständlich vorgenommen werden, weil der Wert von 'property'-Variablen nicht mehr gespeichert werden. Der Zielordners muss nur beim ersten Gebrauch ausgewählt werden. Nachher ist der Pfad in einer Datei im Ordner "Preferences" der Bibliothek des aktuellen Benutzers gespeichert. Wenn der Zielordner gewechselt werden soll, dann kann man den bisherigen verschieben oder umbenennen.

Falls Du Probleme mit dem Zuweisen dieser Ordneraktion haben solltest, dann komme bitte zurück.

Hans Haesler <hsa@ringer.ch>


als Antwort auf: [#418847]

Ordneraktion: Files automatisch verschieben

truni
Beiträge gesamt: 98

5. Jul 2004, 12:49
Beitrag # 3 von 3
Beitrag ID: #418849
Bewertung:
(5285 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Damit sollten wir genug Infos haben fürs Erste, danke!


als Antwort auf: [#418847]