| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen   | 
	 
	
	
		| Autor | 
		Nachricht | 
	 
	
		Busyman •-->
  
  
  Anmeldedatum: 16.09.2001 Beiträge: 64 Wohnort: Ostwestfalen
  | 
		
			
				 Verfasst am: 18.12.2001 - 00:34    Titel: Probleme beim DownloadSorter 2.0 - Problem beim Erstellen ei | 
				     | 
			 
			
				
  | 
			 
			
				Hallo liebes Forum,
 
 
habe neulich wieder an meinem DownloadSorter herumgespielt und ihn anhand Eurer Tips und Vorschläge nun komplett umgeschrieben. Es werden nun keine leeren Ordner mehr angelegt, alle möglichen Benutzerfehler werden einkalkuliert und komfortabler ist das Script auch geworden. Allerdings habe ich immer noch ein Grundproblem, welches ich wohl ohne Eure Hilfe nicht werde lösen können.
 
 
Ich lasse den Benutzer einen Ordner wählen, in den alle Dateien, die ein bestimmtes Suffix besitzen und auf dem Desktop liegen, einsortiert werden, und zwar jeweils in einen Unterordner des Zielordners, der dann nicht das Suffix der Datei trägt. Wählt der Benutzer einen ganz neuen Zielordner für den Sortiervorgang, dann gibt es gar keine Probleme, denn in dem neuen Ordner kann nichts Falsches passieren. Wählt er aber einen Ordner, der bereits vorher existierte und womöglich Dateien und Unterordner enthält, dann stellt er mich vor eine harte Prüfung, im wahrsten Sinne des Wortes. Denn dann muß ich beim Erstellen der neuen Unterordner in diesem Zielordner ständig prüfen, ob bereits eine Datei oder ein Ordner gleichen Namens existiert.
 
Existiert eine Datei gleichen Namens, muß der Benutzer einen neuen Namen für den anzulegenden Unterordner wählen, worauf ich wieder prüfen muß, ob dieser existiert.
 
Existiert ein Ordner gleichen Namens muß der Benutzer wählen können, ob er diesen verwendet oder einen neuen Namen für den anzulegenden Unterordner verwendet. Will er den vorhandenen Ordner nutzen, muß ich wiederrum prüfen, ob dieser leer ist, oder doch gar wieder eine Datei oder einen Ordner dort drinnen liegt, die wie die Datei heißen, die hineinkopiert werden soll...usw, usw, usw.	I hope you get the idea  )
 
 
An der Stelle, wo es heißt "Tja, was soll ich hier bloß machen?" taucht das Problem auf, bis dahin läuft eigentlich bisher alles Snow-koform   (Einen Dank nochmal an Dich, Verbesserungsvorschläge wurden auch gewissentlich beachtet). Wißt Ihr da weiter? Ich beiße mir daran wirklich die Zähne aus...
 
 
Danke für die Hinweise zur Ergreifung der Routine *g*
 
 
ScriptCode gibt es hier:
 
 
http://www.ame-electroplating.com/geheimversteck/Test.sit
 
 
 
 
[font=geneva]--++Bug Notes++
 
 
--++Globals++
 
global Debug
 
set Debug to "Hello World!"
 
 
global AllSuffixFiles
 
global ArchiveFolder
 
 
--++Main Subroutines++
 
on PleaseChooseSuffix()
 
	 tell application "Finder"
 
			
 
			set SuffixList to ¨
 
				 { "Eigenes Suffix wählen", "++++", ".sit", ".bin", ".sea", ".smi", ".dmg", ".img", "++++", ".jpg", ".gif", ".psd", ".eps", "++++", ".mp3", ".wav", "++++", ".mov", ".avi", "++++", ".pdf", ".doc", ".txt", ".cwk" }
 
			choose from list SuffixList with prompt ¨
 
				 "Wählen Sie den Dateientyp, der für den Sortiervorgang berücksichtigt werden soll:" default items "Eigenes Suffix wählen"
 
			
 
			if result is not false then
 
				 
 
				 set DialogResultCS1 to result as string
 
				 
 
				 if DialogResultCS1 = "Eigenes Suffix wählen" then
 
						my ChooseYourOwnSuffix()
 
				 else if DialogResultCS1 = "++++" then
 
						display dialog ¨
 
							 "Fehler:" & return & "Sie haben ein Trennungssymbol gewählt." buttons ( "Ups :ï)" ) default button 1 with icon caution
 
						my PleaseChooseSuffix()
 
						
 
				 else
 
						set choosensuffix to DialogResultCS1
 
						my CheckIfSuffixFilesExistOnDesktop(choosensuffix)
 
				 end if
 
				 
 
			else
 
				 return
 
			end if
 
			
 
	 end tell
 
end PleaseChooseSuffix
 
 
 
on ChooseYourOwnSuffix()
 
	 tell application "Finder"
 
			
 
			display dialog ¨
 
				 "Wählen Sie bitte ein eigenes Suffix:" default answer ".abc"
 
			set DialogResultCYOS1 to the text returned of the result
 
			
 
			if DialogResultCYOS1 = "" then
 
				 display dialog ¨
 
						"Fehler:" & return & "Sie haben kein Suffix gewählt." buttons ( "Ups :ï)" ) default button 1 with icon caution
 
				 my ChooseYourOwnSuffix()
 
			else if length of DialogResultCYOS1 > 4 then
 
				 display dialog ¨
 
						"Fehler:" & return & "Sie haben ein Suffix mit mehr als 4 Zeichen gewählt." buttons ( "Ups :ï)" ) default button 1 with icon caution
 
				 my ChooseYourOwnSuffix()
 
			else if length of DialogResultCYOS1 < 4 then
 
				 display dialog ¨
 
						"Fehler:" & return & "Sie haben ein Suffix mit weniger als 4 Zeichen gewählt." buttons ( "Ups :ï)" ) default button 1 with icon caution
 
				 my ChooseYourOwnSuffix()
 
				 
 
			else
 
				 if DialogResultCYOS1 contains ":" then
 
						display dialog ¨
 
							 "Fehler:" & return & "Sie haben das ungültige Zeichen \":\" bei der Suffix-Wahl verwendet" buttons ( "Ups :ï)" ) default button 1 with icon caution
 
						my ChooseYourOwnSuffix()
 
				 else if DialogResultCYOS1 contains "/" then
 
						display dialog ¨
 
							 "Fehler:" & return & "Sie haben das ungültige Zeichen \"/\" bei der Suffix-Wahl verwendet" buttons ( "Ups :ï)" ) default button 1 with icon caution
 
						my ChooseYourOwnSuffix()
 
				 else if character -4 of DialogResultCYOS1 is not "." then
 
						display dialog ¨
 
							 "Fehler:" & return & "Sie haben keinen	\".\" vor Ihr gewähltes Suffix gesetzt." default button 1 with icon caution
 
						my ChooseYourOwnSuffix()
 
						
 
				 else
 
						my CheckIfSuffixFilesExistOnDesktop(DialogResultCYOS1)
 
				 end if
 
			end if
 
			
 
	 end tell
 
end ChooseYourOwnSuffix
 
 
 
on CheckIfSuffixFilesExistOnDesktop(thechoosensuffix)
 
	 tell application "Finder"
 
			
 
			set AllSuffixFiles to every file whose name ends with thechoosensuffix
 
			
 
			if AllSuffixFiles is {} then
 
				 display dialog ¨
 
						"Fehler:" & return & "Es wurden keine Dateien mit dem gewählten Suffix auf Ihrem Desktop gefunden." buttons ( "Okay" ) default button 1 with icon stop giving up after 15
 
				 
 
			else
 
				 display dialog ¨
 
						"Wollen Sie die Dateien in einen Ordner namens \"Download Archiv\" auf dem Desktop einsortieren lassen, einen eigenen Ordner für diesen Sortiergang auswählen oder das Script abbrechen?" buttons { "Download Archiv", "Eigener Ordner", "Script abbrechen" } default button 2 with icon note
 
				 set DialogResultCISFEOD1 to result
 
				 
 
				 if button returned of the result = "Script abbrechen" then
 
						return
 
				 else if button returned of the result = "Download Archiv" then
 
						set choosenfoldername to "Download Archiv"
 
						my MakeNewFolderOnDesktop(choosenfoldername)
 
				 else if button returned of the result = "Eigener Ordner" then
 
						my ChooseYourOwnFolder()
 
				 end if
 
				 
 
			end if
 
			
 
	 end tell
 
end CheckIfSuffixFilesExistOnDesktop
 
 
 
on MakeNewFolderOnDesktop(thechoosenfoldername)
 
	 tell application "Finder"
 
			set AllItemsOnDesktop to every item of the desktop whose name is thechoosenfoldername
 
			
 
			if AllItemsOnDesktop is {} then
 
				 make new folder at desktop
 
				 set name of the result to thechoosenfoldername
 
				 global ArchiveFolder
 
				 set ArchiveFolder to folder thechoosenfoldername
 
				 my BeginToSortSuffixFileToSubFolders()
 
				 
 
			else
 
				 my ErrorMakeNewFolderOnDesktop(thechoosenfoldername)
 
			end if
 
			
 
	 end tell
 
end MakeNewFolderOnDesktop
 
 
 
on ErrorMakeNewFolderOnDesktop(theerrorfolder)
 
	 tell application "Finder"
 
			
 
			set AllFoldersOnDesktop to every folder whose name is theerrorfolder
 
			
 
			if AllFoldersOnDesktop is {} then
 
				 display dialog ¨
 
						"Fehler:" & return & "Es existiert bereits eine Datei namens" & return & theerrorfolder & return & "auf Ihrem Desktop." & return & "Bitte wählen Sie einen anderen Namen für den Ordner." buttons { "Okay" } default button 1 with icon caution
 
				 my ChooseAValidNewFolder(theerrorfolder)
 
				 
 
			else
 
				 display dialog ¨
 
						"Warnung:" & return & "Es existiert bereits ein Ordner names" & return & theerrorfolder & return & "auf Ihrem Desktop." & return & "Wollen Sie den Ordner trotzdem verwenden, einen neuen Ordnernamen wählen oder das Script abbrechen?" buttons { "Ordner verwenden", "Neuer Ordner", "Script abbrechen" } default button 2 with icon caution
 
				 set DialogResultEMNFOD1 to result
 
				 
 
				 if button returned of the result = "Script abbrechen" then
 
						return
 
				 else if button returned of the result = "Neuer Ordner" then
 
						my ChooseAValidNewFolder(theerrorfolder)
 
				 else if button returned of the result = "Ordner verwenden" then
 
						global ArchiveFolder
 
						set ArchiveFolder to folder theerrorfolder
 
						my BeginToSortSuffixFileToSubFolders()
 
				 end if
 
				 
 
			end if
 
			
 
	 end tell
 
end ErrorMakeNewFolderOnDesktop
 
 
 
on ChooseAValidNewFolder(invalidfoldername)
 
	 tell application "Finder"
 
			
 
			display dialog ¨
 
				 "Bitte geben Sie einen neuen Namen für den Ordner an:" & return & "(ungültiger Ordnername war: " & invalidfoldername & " )" default answer ""
 
			set tryinghardtomakenewfolder to the text returned of the result
 
			
 
			if tryinghardtomakenewfolder = "" then
 
				 display dialog ¨
 
						"Fehler:" & return & "Sie haben keinen Namen für den Ordner gewählt." buttons ( "Ups :ï)" ) default button 1 with icon caution
 
				 my ChooseAValidNewFolder(invalidfoldername)
 
			else if length of tryinghardtomakenewfolder > 31 then
 
				 display dialog ¨
 
						"Fehler:" & "Sie haben einen Ordnernamen mit mehr als 31 Zeichen gewählt." buttons ( "Ups :ï)" ) default button 1 with icon caution
 
				 my ChooseAValidNewFolder(invalidfoldername)
 
				 
 
			else
 
				 if tryinghardtomakenewfolder contains ":" then
 
						display dialog ¨
 
							 "Fehler:" & return & "Sie haben das ungültige Zeichen \":\" im Ordnernamen verwendet" buttons ( "Ups :ï)" ) default button 1 with icon caution
 
						my ChooseAValidNewFolder(invalidfoldername)
 
				 else if tryinghardtomakenewfolder contains "/" then
 
						display dialog ¨
 
							 "Fehler:" & return & "Sie haben das ungültige Zeichen \"/\" im Ordnernamen verwendet" buttons ( "Ups :ï)" ) default button 1 with icon caution
 
						my ChooseAValidNewFolder(invalidfoldername)
 
						
 
				 else
 
						my MakeNewFolderOnDesktop(tryinghardtomakenewfolder)
 
				 end if
 
				 
 
			end if
 
	 end tell
 
end ChooseAValidNewFolder
 
 
 
on ChooseYourOwnFolder()
 
	 tell application "Finder"
 
			choose folder with prompt "Bitte wählen Sie einen Ordner, in welchen die Dateien einsortiert werden sollen:"
 
			set choosenfolder to the result
 
			
 
			global ArchiveFolder
 
			set ArchiveFolder to choosenfolder
 
			my BeginToSortSuffixFileToSubFolders()
 
			
 
	 end tell
 
end ChooseYourOwnFolder
 
 
on BeginToSortSuffixFileToSubFolders()
 
	 tell application "Finder"
 
			
 
			repeat with suffixfile in AllSuffixFiles
 
				 
 
				 my TryToCreateSubFolders(suffixfile)
 
				 
 
			end repeat
 
			
 
	 end tell
 
end BeginToSortSuffixFileToSubFolders
 
 
on TryToCreateSubFolders(thesuffixfile)
 
	 tell application "Finder"
 
			
 
			set FirstTrySubFolderName to the name of thesuffixfile
 
			set FirstTrySubFolderName to (characters 1 thru -5 of FirstTrySubFolderName) as string
 
			set ArchiveFolderItems to every item of the ArchiveFolder whose name is FirstTrySubFolderName
 
			
 
			if ArchiveFolderItems is {} then
 
				 make new folder in ArchiveFolder
 
				 set name of the result to FirstTrySubFolderName
 
				 move thesuffixfile to folder FirstTrySubFolderName in ArchiveFolder
 
				 
 
			else
 
				 
 
				 --Tja, was soll ich hier bloß machen?
 
				 
 
			end if
 
			
 
	 end tell
 
end TryToCreateSubFolders
 
 
--++Main Script++
 
tell application "Finder"
 
	 activate
 
	 with timeout of 600 seconds
 
			
 
			my PleaseChooseSuffix()
 
			
 
	 end timeout
 
end tell[/font] | 
			 
		  | 
	 
	
		| Nach oben | 
		 | 
	 
	
		  | 
	 
	
		Busyman •-->
  
  
  Anmeldedatum: 16.09.2001 Beiträge: 64 Wohnort: Ostwestfalen
  | 
		
			
				 Verfasst am: 18.12.2001 - 00:43    Titel: Probleme beim DownloadSorter 2.0 | 
				     | 
			 
			
				
  | 
			 
			
				Hatte ich vergessen: Das Script ist natürlich noch nicht auf Kürze usw. optimiert, es werden auch sonst noch einige Fehler im Detail stecken (ganz sicher *gg*), bin natürlich auch dahingehend sehr an Eurer Kritik interessiert.
 
 
Gruß,
 
 
Busyman | 
			 
		  | 
	 
	
		| 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 
		 | 
	 
 
 | 
 
 |