Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 03.08.2001 - 16:40 Titel: info for Netzwerkvolume - Finder |
|
|
Hallo
Wenn ich versuche, die Infos eines Netzwerkvolumes mittels "info for" zu ermitteln, bekomme ich die Fehlermeldung "File some object wasn't found". Mach ich das Gleiche mit einem Ordner innerhalb des Volumes, also z.B. info for "www:ordner:", klappt's wunderbar. Wo liegt der Fehler?
Grüße, Jens
(Geändert von Jens Hoffmann am 16:41 Uhr am 3 Aug. 2001) |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 03.08.2001 - 21:36 Titel: info for Netzwerkvolume |
|
|
Hallo Jens
'info for' funktioniert nur mit Ordnern oder Dateien, nicht Laufwerken (class disk) wie es das Dictionary zeigt:
info for: Return information for a file or folder (from File Commands) (defined in: Standard Additions)
info for file specification -- the alias, file specification, or path to the file or folder
Result: file information -- a record containing the information for file or folder specified
Welche Information möchtest Du denn erhalten? Es gibt sicher noch einen anderen Weg dazu.
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 06.08.2001 - 12:05 Titel: info for Netzwerkvolume |
|
|
Hallo macgix
"info for" funktioniert mit den lokalen Volumes, bzw. Partitionen. Es liegt wohl eher am Netzwerk.
Ich möchte einfach den Namen des Volumes (aus einem Pfad, z.B. "LANdisk:"). Ich könnte natürlich den Doppelpunkt daraus löschen, aber vielleicht geht's ja auch anders.
Grüße, Jens |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 06.08.2001 - 12:20 Titel: info for Netzwerkvolume |
|
|
Hallo Jens,
jetzt mische ich mich auch noch ein :)
Das kann mit Sicherheit der Finder liefern (name of Ö), allerdings mache ich es lieber so:
set theP to choose folder -- weiß ja nicht woher der Pfad kommt
get_part(theP as string, 1)
on get_part(theP, n)
set {oldDelim, AppleScript's text item delimiters} to {AppleScript's text item delimiters, ":"}
set temp to item n of text items of theP
set AppleScript's text item delimiters to oldDelim
return temp
end get_part
n kann natürlich auch -1/-2 sein, dann erhälst Du einen Datei-/Ordnernamen.
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 06.08.2001 - 13:01 Titel: info for Netzwerkvolume |
|
|
Hallo Folker
Das kann mit Sicherheit der Finder liefern (name of Ö)
Das geht eben bei meinen LAN-Volumes gerade nicht (-> Fehler s.o.).
Mit
Ich könnte natürlich den Doppelpunkt daraus löschen
meinte ich, was Du vorschlägst.
Danke + Grüße, Jens |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 06.08.2001 - 14:37 Titel: info for Netzwerkvolume |
|
|
Hallo Jens,
mit "Das kann mit Sicherheit der FinderÖ" meinte ich nicht den Standard Scripting Addition Befehl 'info for'.
tell application "Finder"
name of every disk where local volume of it is false
end tell
Schau mal ins Dictionary des Finders, der kann eigentlich auch (fast?) alles liefern was 'info for' kann und darüber hinaus natürlich einiges mehr ;)
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 06.08.2001 - 16:55 Titel: info for Netzwerkvolume |
|
|
Ahh, so langsam wird's
Ich glaube, ich hätte mein Problem genauer beschreiben sollen, was ich jetzt mal mache:
Das Script wandert die Ordnerhierachie von einem Ordner (kann lokal oder LAN sein) aus nach oben und wenn es in den root-Ordner eines Netzwerk-Volumes kommt, tritt eben jener Fehler auf.
Also brauche eine Abfrage, ob Ordner oder Volume. Ich habe das auf die Art probiert:
---
tell application "Finder"
try
return name of (info for Ordner)
on error
NetzwerkvolumeBearbeitung
end try
end tell
---
Das Problem ist, daß dies ziemlich lange dauert. Die Abfrage müsste also vor dem "info for" kommen. Ich habe aber keine Idee. wie ich das davor abfragen soll...
Grüße, Jens |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 06.08.2001 - 17:39 Titel: info for Netzwerkvolume |
|
|
Hallo Jens,
hilft Dir vielleicht
[font=geneva]set x to [color=red]choose folder
tell application "Finder"
kind of x
end tell[/color][/font]
weiter?
Gruß,
Folker
PS: Achtung, der Finder gibt das Ergebnis offensichtlich i.d. jeweiligen System-(Landes)Sprache wieder. _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 06.08.2001 - 20:37 Titel: info for Netzwerkvolume |
|
|
Ja steh't Ihr denn alle im Wäldchen?
[font=geneva]
tell application "Finder" to set tDisks to name of (every disk whose ejectable is false and local volume is false)
[/font]
Und schon isses passiert.
Gruß,
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 07.08.2001 - 10:00 Titel: info for Netzwerkvolume |
|
|
Ja, hier um Eutin herum gibt es schöne Wälder! Nein, im Ernst, so wie ich das Problem verstehe, arbeitet Jens eine Ordnerhierachie von unten nach oben durch und hat dann irgendwann die oberste Ebene erreicht und braucht genau dann die Art des Objekts - und da Netzwerkvolumes durchaus gleichen Namen haben können wie ein lokales Laufwerk hilft auch eine Liste aller Netzwerkvolumes nicht wirklich weiter. Aber vielleicht habe ich da auch falsch gedacht.
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 07.08.2001 - 13:31 Titel: info for Netzwerkvolume |
|
|
Hallo Folker
Eines verstehe ich nicht: Wieso der Ordner down -> top durchlaufen wird? Üblich ist der Aufruf eines rekursiven Handlers top -> bottom... Da sich auch auf einem Laufwerk nur Ordner und Dateien befinden, und der "Root-Level" des Laufwerks so als Erstes Bearbeitung findet, kommt es nicht mehr zum Abbruch des Skriptes.
Ein Skeleton, das den rekursiven Handler enthält, findet Ihr unter Dasglaubich.net, und dort im Skript "RecursiveFileTrasher.txt".
Damit sollte dann auch Jens glücklich werden können.
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 07.08.2001 - 14:23 Titel: info for Netzwerkvolume |
|
|
Hallo Thomas,
die Antwort kann nur der Jens wissen. Ich persönlich wüsste im Moment auch kein Beispiel für eine Notwendigkeit down -> top, aberÖ, habe ja schon so einiges erlebt - darum gehe ich erstmal davon aus, dass diese Notwendigkeit bestehen könnte.
Ein sehr schönes Beispiel für einen rekursiven Handler findet sich im "AppleScript Guidebook":
Essential Sub-routines -> Finder Droplets ->
Droplet for Processing Dragged - on Files and Folders in Nested Folders
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 07.08.2001 - 15:33 Titel: info for Netzwerkvolume |
|
|
Hey, ihr seid ja so schnell, dass ich kaum mit dem Lesen hinterher komme, geschweige denn mit dem Ausprobieren Eurer Vorschläge ;-)
Ok, man sollte sein Problem wirklich sehr genau beschreiben, dann gibt's auch kein Rätselraten. Hier die Auflösung:
Der Part des Scripts simuliert einen Öffnendialog. Per Doppelklick auf ein Listenitem (falls Ordner) zeigt den Inhalt diesen an, ein Klick auf einen Button geht eine Hierachie nach oben. Der Ordner, von dem aus gestartet wird, hängt von vorhergehenden Aktionen ab. Der Name des aktuellen Ordners soll über der Liste angezeigt werden. Funktioneirt auch alles, bis eben auf besagtes Problem bei LAN-Volumes.
Und hier der Part des Scripts (innerhalb einer repeat-Schleife):
---------
tell application "Finder"
set neu to (container of item CurrentOrdner) as text
end tell
set zut to order list (list folder neu without invisibles)
dd set contents of item 10 of fenster to zut
set CurrentOrdner to neu
set CurrentOrdnerName to name of (info for CurrentOrdner)
dd set contents of item 12 of fenster to CurrentOrdnerName
--------
item 10 ist die Liste, item 12 der "static text", der den Namen anzeigen soll. CurrentOrdner ist der aktuelle Ordner, CurrentOrdnerName ist, wer hätte es gedacht, eben der Name.
Soweit ich das bis jetzt beurteilen kann, sieht mir "kind of" nach der Lösung aus. Wie gesagt, zum Testen brauch ich immer etwas.
Viele Grüße , Jens
(Geändert von Jens Hoffmann am 15:39 Uhr am 7 Aug. 2001) |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 07.08.2001 - 16:47 Titel: info for Netzwerkvolume |
|
|
Hallo Jens,
wenn Du das Skript mal direkt postest oder mir per eMail schickst, kann ich den Fehler gerne für Dich debuggen und die Korrektur dann auch hier posten. - Das Problem habe ich nun wohl auch verstanden.
Gruß,
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 09.08.2001 - 12:20 Titel: info for Netzwerkvolume |
|
|
Jetzt aber.
Die (oder eine) Lösung ist: "name of container of item xyz"
Damit sieht die Routine, um in der Ordnerhierachie eins nach oben zu gehen, jetzt so aus:
--------
try
tell application "Finder"
if not (name of container of item (CurrentOrdner as alias)) is "Schreibtisch" then
set neu to (container of item CurrentOrdner) as alias
else
set neu to path to desktop folder as alias
end if
set zut to order list (list folder neu without invisibles)
set CurrentOrdnerName to name of neu
set CurrentOrdner to neu
end tell
dd set contents of item 10 of fenster to zut
dd set contents of item 12 of fenster to CurrentOrdnerName
end try
--------
Die if-Abfrage prüft noch, ob man auf dem Schreibtisch gelandet ist, da der container eines Volumes (=Schreibtisch) "desktop of application "Finder"" ist. Will man noch eins höher, passiert gar nix, dafür der try-Handler. Vielleicht geht das auch noch eleganter, mir reicht's erst mal.
Grüße, Jens |
|
Nach oben |
|
 |
|