[GastForen Programmierung/Entwicklung AppleScript Eingangsdaten Dateien u. Ordner erkennen

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

Eingangsdaten Dateien u. Ordner erkennen

Anonym
Beiträge gesamt: 22827

21. Jan 2007, 19:44
Beitrag # 1 von 5
Bewertung:
(1842 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,

kann man per OrdnerScript ankommenden Daten splitten:
wenn Dateien eintreffen, diese in "Eing_Dateien" moven
wenn Ordner eintreffen, alle in "Eing_Ordner" moven,

oder gibt es Probleme mit dem erkennen von EOF

Gruss willem
X

Eingangsdaten Dateien u. Ordner erkennen

Hans Haesler
  
Beiträge gesamt: 5826

21. Jan 2007, 20:45
Beitrag # 2 von 5
Beitrag ID: #421460
Bewertung:
(1841 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

ja, das kann man. Und nein, es gibt keine Probleme mit dem EOF (= end of file),
weil dieses nur beim Lesen des Inhalts von Dateien benutzt wird.

Im vorliegenden Fall genügt es, zu prüfen, ob die Property folder der Infos
des Objekts true oder false zurückgibt. Im ersten Fall ist es ein Ordner,
sonst eine Datei.

Ich überlasse es Dir die Pfade zu den beiden Zielordnern anzupassen.
---
property allFiles : "Tiger:Users:willem:Documents:Eing_Dateien:"
property allFolders : "Tiger:Users:willem:Documents:Eing_Ordner:"

on adding folder items to thisFolder after receiving objectList
   repeat with i from 1 to count of objectList
      set aObject to (item i of objectList) as Unicode text
      if folder of (info for file aObject) is true then
         try
            tell application "Finder" to move folder aObject to folder allFolders
         end try
      else
         try
            tell application "Finder" to move file aObject to folder allFiles
         end try
      end if
   end repeat
end adding folder items to
---
Gruss, Hans


als Antwort auf: [#421459]

Eingangsdaten Dateien u. Ordner erkennen

Anonym
Beiträge gesamt: 22827

21. Jan 2007, 21:39
Beitrag # 3 von 5
Beitrag ID: #421461
Bewertung:
(1841 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

Danke für dieses Schmankerl,

Gruss willem


als Antwort auf: [#421459]

Eingangsdaten Dateien u. Ordner erkennen

Anonym
Beiträge gesamt: 22827

7. Mär 2007, 20:45
Beitrag # 4 von 5
Beitrag ID: #421462
Bewertung:
(1841 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

wenn ich Ordner mit Inhalt von A nach "ONE HD:Ordnertest:Ordner" move
und möchte anschließend, wenn ein Ordner mit gleichem Namen aber Neuem Inhalt ankommt
den bestehenden Ordner überschreiben - aber eben nur, wenn dieser leer ist,
wie könnte das funktionieren?

habe Deinem Script ein "with replacing" angehängt,
da wird aber Überschrieben auch wenn noch Files im Ziel-Ordner liegen.

property allFiles : "ONE HD:Ordnertest:Datei:"
property allFolders : "ONE HD:Ordnertest:Ordner:"

on adding folder items to thisFolder after receiving objectList
repeat with i from 1 to count of objectList
set aObject to (item i of objectList) as Unicode text
if folder of (info for file aObject) is true then
try
tell application "Finder" to move folder aObject to folder allFolders with replacing
end try
else
try
tell application "Finder" to move file aObject to folder allFiles with replacing
end try
end if
end repeat
end adding folder items to

Gruss und Danke
willem


als Antwort auf: [#421459]

Eingangsdaten Dateien u. Ordner erkennen

Hans Haesler
  
Beiträge gesamt: 5826

10. Mär 2007, 22:47
Beitrag # 5 von 5
Beitrag ID: #421463
Bewertung:
(1841 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
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]
X