| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	 
	
	
		| Autor | 
		Nachricht | 
	 
	
		Twenning •->
  
 
  Anmeldedatum: 27.08.2003 Beiträge: 15
 
  | 
		
			
				 Verfasst am: 22.07.2004 - 16:12    Titel: Rekrusiver Abgleich von Ordner | 
				     | 
			 
			
				
  | 
			 
			
				Hallo,
 
 
ich habe ein Skript erstellt um eine Ordnerstruktur abzugleichen. Hierbei werden nur bestimmte Grafikformate berücksichtigt.
 
 
 	  | Code: | 	 		  
 
 
on run
 
   tell application "Finder"
 
      activate
 
      try
 
         set folder1 to choose folder with prompt "Bitte wählen Sie den Quellordner !"
 
      on error -- z.B. Benutzer hat in “Abbrechen” geklickt
 
         return
 
      end try
 
      try
 
         set folder2 to choose folder with prompt "Bitte wählen Sie den Zielordner !"
 
      on error -- z.B. Benutzer hat in “Abbrechen” geklickt
 
         return
 
      end try
 
      SyncFolders(folder1, folder2) of me
 
   end tell
 
end run
 
 
on SyncFolders(folder1, folder2)
 
   SyncEm(folder1, folder2)
 
end SyncFolders
 
 
on SyncEm(folder1, folder2)
 
   tell application "Finder"
 
      set Folder1Contents to list folder folder1
 
      set Folder2Contents to list folder folder2
 
      set grafiktype to {"EPSF", "TIFF", "GIF", "JPEG"}
 
      
 
      repeat with x in Folder1Contents
 
         
 
         if x is not in Folder2Contents then
 
            try
 
               if kind of alias ((folder1 as text) & x) is "Ordner" then
 
                  set NeuerOrdner to make new folder at folder2
 
                  set the name of NeuerOrdner to x
 
                  SyncFolders(((folder1 as text) & x) as alias, ((folder2 as text) & x) as alias) of me
 
               else
 
                  set datei to file type of alias ((folder1 as text) & x)
 
                  if datei is in grafiktype then
 
                     with timeout of 12000 seconds
 
                        duplicate alias ((folder1 as text) & x) to folder folder2
 
                     end timeout
 
                  end if
 
               end if
 
            end try
 
         else
 
            if kind of alias ((folder1 as text) & x) is "Ordner" then
 
               SyncFolders(((folder1 as text) & x) as alias, ((folder2 as text) & x) as alias) of me
 
            else
 
               set datei to file type of alias ((folder1 as text) & x)
 
               if datei is in grafiktype then
 
                  set date1 to «class modd» of alias ((folder1 as text) & x)
 
                  set date2 to «class modd» of alias ((folder2 as text) & x)
 
                  
 
                  set size1 to data size of alias ((folder2 as text) & x)
 
                  set size2 to data size of alias ((folder2 as text) & x)
 
                  
 
                  if date1 = date2 and size1 = size2 then
 
                     -- Datei übergehen
 
                  else
 
                     with timeout of 1200 seconds
 
                        duplicate alias ((folder1 as text) & x) to ((folder2 as text) & x & "001")
 
                     end timeout
 
                  end if
 
               end if
 
               
 
            end if
 
         end if
 
         -- end if
 
      end repeat
 
   end tell
 
end SyncEm
 
 
 
 | 	  
 
 
Es soll sein das Ordner nicht berücksichtigt    
 
Ich konnte dieses Problem nicht reproduzieren. Sieht jemand eine entsprechenden Bug?
 
 
Danke und Gruß
 
 
Paulchen | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Snow Administrator
  
  
  Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
  | 
		
			
				 Verfasst am: 22.07.2004 - 17:55    Titel:  | 
				     | 
			 
			
				
  | 
			 
			
				Kleine Änderung:
 
 
        set Folder1Contents to list folder folder1 without invisibles
 
        set Folder2Contents to list folder folder2 without invisibles
 
 
Somit werden unsichtbare Dateien wie ".DS_Store" nicht berücksichtigt. Von diesen könnte nämlich später im Skript nicht die Art bestimmt werden. _________________ Peter
 
-
 
Fischer-Bayern.de|Shadetreemicro.com | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
  | 
   
 
  
Powered by phpBB  © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de 
		 | 
	 
 
 | 
 
 |