Ornder/Datei unsichtbar machen????

S

schau.hans

Aktives Mitglied
Thread Starter
Dabei seit
09.01.2006
Beiträge
511
Reaktionspunkte
21
Hallo, da ich über die Suche leider nichts brauchbares gefunden habe, wende ich mich einfach mal an euch.

Wie kann ich per AppleScript einen Ordner bzw. eine Datei unsichtbar machen.
Den Ordner/Datei einfach umbennen und mit einem Punkt am Anfang zu versehen geht leider nicht, da einige Programme auf dies Ornder/Dateien zugreiffen müssen.

PS: Gibts irgendwo im Internet oder als eBook (sollte Kostenlos sein) eine gute und einfache Referenz für Appleskirpt

Danke für euere Hilfe
Hans
 
...

Hallo schau.hans,

das geht nicht direkt mit AppleScript. Du benötigst die Developer Tools (Tiger/Panther-Install DVD/CD). (Für OS 9 gibt es ScriptingAdditions z.B Akua Sweets die das können.)

Dann geht es so:

do shell script "/Developer/Tools/SetFile -a V /Pfad/zum/Ordner"

wobei das Attribut "V" das File/den Ordner unsichtbar macht und "v" wieder sichtbar.

Der Ordner / das File wäre auch unter OS 9 unsichtbar. Dateien mit Punkt sind unter OS 9 sichtbar.

Kannst das natürlich auch direkt mit dem Terminal machen:
/Developer/Tools/SetFile -a V /Pfad/zum/Ordner

Wenn die Programme aber unsichtbare Dateien ignorieren hast du Pech. Meistens geht es dann doch mit dem "." vor dem Dateinamen, wenn man im Programm einen Pfad zuweisen kann. Das musst du ausprobieren.

Info:
http://developer.apple.com/document...eScriptLangGuide/AppleScriptLanguageGuide.pdf

http://www.apple.com/applescript/apps/

Gruß Andi
 
brauch man unbedingt die developer tools?



Jens
 
...

Hallo stenser,

um einen Punkt vor den Dateinamen zu setzten nicht. Ansonsten benötigst du SetFile das ist in den Tools enthalten. Es müsste auch möglich sein einzelne Bestandteile aus den Tools mittels Pacifist zu installieren um Platz zu sparen...

Gruß Andi
 
Aber einfach so n Punkt vor jeden x-beliebigen namen setzen geht nicht, weil das reserviert sei. Stell ich mich nur an oder geht auch ein "." davor setzen nicht. Will ja nur, dass einige Dateien und Ordner nich angezeigt werden.

Kann man mit den Devel-Tools die Sachen unsichtbar machen ohne dass ein Punkt davor kommt?



Jens
 
stenser schrieb:
Kann man mit den Devel-Tools die Sachen unsichtbar machen ohne dass ein Punkt davor kommt?
Genau.
Wenn Du die Developer Tools (sind gratis) installierst und danach die "ADC Reference Library" wegschmeißt, kostet Dich das ganze noch nicht mal 200 MB Speicherplatz und Du hast alles auf Deinem Mac, was Du brauchst, um ganz einfache oder auch sehr komplexe Anwendungen zu programmieren.

Frohes schaffen
Farid
 
System Events Suite

theoretisch
set myfile to choose file
tell application "System Events" to set visible of myfile to false
tell application "Finder" to update myfile

- der Finder bekommt von dieser Änderung nichts mit
- daher Ordner schliesen und neu öffnen nötig

--Anzeige aktualisieren, Datei dazu temporär in den Papierkorb verschieben
set myfile to choose file
set myfile_bak to myfile as string
do shell script "mv " & quoted form of POSIX path of myfile & " ~/.Trash/"
tell application "System Events" to set visible of myfile to false
do shell script "mv ~/.Trash/" & name of (info for myfile) & " " & quoted form of POSIX path of myfile_bak
 
...

Hallo w2lab,

System Events Suite

tatsächlich. Weißt du zufällig wann der Befehl eingeführt wurde?

Dann nehme ich das zurück, dass man SetFile benötigt...

Gruß Andi

@stenser Der Finder erlaubt dir das umbenennen mit "." nur als root
 
aha. danke.


Jens
 
hab auch was gefunden, welches sich hide folders nennt. Allerdings funktioniert das auch nicht so wie ich mir das gedacht hab. Vielleicht aber funktioniert mein Vorhaben gar nicht so...

Wollte zum Beispiel den iTunes Ordner nur unsichtbar machen. Wenn ich das aber mache wird ein neuer angelegt. Liegt das daran, dass hide folders einfach nur den Punkt davor setzt?

@andy: dieses Prog braucht nichtmal ein admin geschweige denn ein root-pwd
Wenn ich das mit dem obigen skript mach, wird dann auch nur der Punkt davor gesetzt?


Jens
 
Ok. Hab das obige skript getestet. Kann aber nur Dateien auswählen. Geht das evtl so zu ändern, dass man das auch mit Ordnern machen kann?


Jens
 
...

Hallo stenser,

das habe ich schon angesprochen. Manche Programme ignorieren unsichtbare Ordner. Ob das jetzt bei iTunes auch so ist musst du probieren.

Wenn du einen Punkt vor den Dateinamen setzt, veränderst du den Namen des Ordners. Startest du nun iTunes ist in Einstellungen/Erweitert von iTunes der Pfad zum Ordner nicht mehr richtig und deshalb legt iTunes einen neuen Ordner an. Du musst also dort den Pfad richtig setzen und den "neuen" Ordner dann löschen.

Mit dem Skript oder SetFile wird nur ein Dateiattribut angehängt, dass dem Finder signalisiert, das Objekt nicht anzuzeigen. Das kann aber dazu führen, dass das Objekt von einigen Programmen ebenfalls ignoriert wird.

Es gibt noch eine dritte Möglichkeit eine Datei unsichtbar zu machen, indem man sie in ein .hidden File einträgt. Da bin ich aber nicht sicher von welchen OS Versionen das unterstützt wird.

Für das Skript anstatt file einfach folder...

Gruß Andi
 
Und um das wieder sichtbar zu machen anstatt false true?


Jens
 
Funktioniert bestens. Auch iTunes nimmt dann den versteckten Ordner. Sehr fein.
Es gibt nur noch ein Problem, wenn ich folder statt file nehme kommt eine Fehlermeldung bei folgender Zeile...

Code:
do shell script "mv " & quoted form of POSIX path of myfolder & " ~/.Trash/"
Warum? Und kann man das ändern? Wozu brauch ich diese Zeile?


Jens
 
...

Hallo stenser,

vermutlich ein Tippfehler. Wie lautet denn dein Skript im Gesamten und die Fehlermeldung?

w2lab --Anzeige aktualisieren, Datei dazu temporär in den Papierkorb verschieben

Wobei der Papierkorb denkbar schlecht als temporäres Verzeichnis geeignet ist. Besser wäre /private/tmp/

Gruß Andi
 
Code:
set myfolder to choose folder
tell application "System Events" to set visible of myfolder to true
tell application "Finder" to update myfolder

set myfolder to choose folder
set myfolder_bak to myfolder as string
do shell script "mv " & quoted form of POSIX path of myfolder & " ~/.Trash/"
tell application "System Events" to set visible of myfolder to true
do shell script "mv ~/.Trash/" & name of (info for myfolder) & " " & quoted form of POSIX path of myfolder_bak

Wobei ich festgestellt hab, dass der erste Abschnitt reicht. Was macht der zweite?


Jens
 
...

Hallo stenser,

das sind zwei Skripte. Die im Prinzip das selbe machen. Wahrscheinlich funktioniert der "update" Befehl bei einem File nicht. Man müsste den Ordner in dem das File liegt updaten.

Snow hat das auf seiner Seite ganz gut erklärt wie man diesen anspricht.
http://www.fischer-bayern.de/applescript/html/parent_f.html

Gruß Andi
 
Endlich bin ich fertig :)

Es hat zwar etwas länger gedauert als ich dachte aber jetzt hab ich mein Skript fertig.

Code:
(*
Beim Doppelklicken wird der Finder neu gestartet und die unsichtbaren Files/Ordner eingeblendet wenn diese zuvor unisichtbar waren und ausgeblendet wenn diese sichtbar waren.
*)
property workingfilename : "~/Library/Preferences/com.apple.finder.plist"
on run
	display dialog "Versteckte Systemfiles/-folders und unsichtbare Files/Folders..." buttons {"Abbrechen", "Ausblenden", "Anzeigen"} default button 1
	if the button returned of the result is "Anzeigen" then
		tell application "System Events" to set value of property list item "AppleShowAllFiles" of contents of property list file workingfilename to "true"
		tell application "Finder"
			quit
			delay 1
			tell application "Finder"
				launch
			end tell
		end tell
		
	else if the button returned of the result is "Ausblenden" then
		tell application "System Events" to set value of property list item "AppleShowAllFiles" of contents of property list file workingfilename to "false"
		tell application "Finder"
			quit
			delay 1
			tell application "Finder"
				launch
			end tell
		end tell
	end if
	
end run

(*
Wenn ein oder mehrere Files/Ordner auf das Programm gewogen werden, werden diese unisichtbar bzw. wieder sichtbar, je nachdem ihr vorherieger Zustand war. Sichtbare Files/Ordner werden unsichtbar, und umgekehrt.
*)
on open theseItems
	display dialog "Sichtbare Files/Folders die auf das Programm gezogen wurden werden unsichtbar und unsichtbare sichtbar!" buttons {"Abbrechen", "Fortsetzen..."} default button 1
	if the button returned of the result is "Fortsetzen..." then
		repeat with anItem in theseItems
			set anItem to anItem as alias
			tell application "System Events"
				set VisResult to get visible of anItem
				
				if VisResult = true then
					set visible of anItem to false
				else
					set visible of anItem to true
				end if
				
			end tell
		end repeat
	else
	end if
	
end open

Edit: Habe noch die Dialogabfragen hinzugefügt.
 
Zuletzt bearbeitet:
Zurück
Oben Unten