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

Anmeldedatum: 29.09.2003 Beiträge: 61 Wohnort: Solingen
|
Verfasst am: 30.09.2003 - 08:10 Titel: Dateipfade bei choose file und display open panel attached.. |
|
|
Habe ein kleines Programm, in dem ich die Größe einer Datei in einer Variablen speichern möchte:
on clicked theObject
set derTitel to the title of theObject
tell open panel
set treat packages as directories to false
set can choose directories to false
set can choose files to true
set allows multiple selection to false
end tell
if derTitel = "Öffnen" then
display open panel attached to window "fenster_f"
end if
end clicked
on panel ended theObject with result withResult
if withResult = 1 then
set the pfadNamen to (path names of open panel as list)
set pfadName to item 1 of pfadNamen
set contents of text field "eingabe_tf" of window "fenster_f" to pfadName as string
end if
end panel ended
Benutze ich "choose file" ist der Pfadname: HD:Benutzer:.... Mit dieser Angabe kann ich z.B. eine Größe oder den Namen der Datei mit "data size" oder "name of" abfragen.
Bezogen auf das Programm
In der Variablen pfadName steht: /User/......., je nach Pfad.
Dies ist aber kein Pfad zu einem item (gem. der Fehlermeldungen).
Und jetzt das Problem: Wie mache ich aus dieser Angabe den Pfad zu einem item, in dessen properties die size (Größe) gespeichert ist?
Ist eine Konvertierung von /User... -> HD:Benutzer möglich? |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 30.09.2003 - 21:15 Titel: |
|
|
Ich habe das jetzt einfach mal im Skripteditor nachgestellt, da ich mir sonst erst ein Projekt in AppleScript Studio hätte anlegen müssen.
Du kannst ja mal probieren, ob dir folgendes weiter hilft:
set thePath to "/Users/snow/Desktop/Neuer Ordner/Attach Script to Folder.app"
set AppleScript's text item delimiters to "/"
set thePath to text items 2 thru (count of text items in thePath) of thePath
set AppleScript's text item delimiters to ":"
set thePath to (path to startup disk as string) & (thePath as string)
thePath as alias _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
roser •-->

Anmeldedatum: 29.09.2003 Beiträge: 61 Wohnort: Solingen
|
Verfasst am: 01.10.2003 - 07:50 Titel: Danke. n/t |
|
|
Danke, danke, aber schade, dass das "umgerechnet" werden muß. |
|
Nach oben |
|
 |
roser •-->

Anmeldedatum: 29.09.2003 Beiträge: 61 Wohnort: Solingen
|
Verfasst am: 01.10.2003 - 14:05 Titel: Klappt nicht ganz, weil: |
|
|
der POSIX-Pfad ausschliesslich in englischer Sprache angegeben wird, das System aber anderssprachige Namen verlangt.
Bsp.: Users <-> Benutzer; Documents <-> Dokumente
Vielleicht hat noch jemand eine Idee, wie die Umrechnung per Befehl erfolgen kann. |
|
Nach oben |
|
 |
Snow Administrator


Anmeldedatum: 21.11.2000 Beiträge: 1946 Wohnort: Deiningen
|
Verfasst am: 01.10.2003 - 18:11 Titel: |
|
|
Stammt das "Klappt nicht ganz" jetzt aus der Theorie oder aus der Praxis?
Normalerweise funktionieren nämlich die englischen Bezeichnungen durchaus. Der "User"-Ordner heißt bei mir auch "Benutzer" und trotzdem funktionieren die Pfadangaben. _________________ Peter
-
Fischer-Bayern.de|Shadetreemicro.com |
|
Nach oben |
|
 |
roser •-->

Anmeldedatum: 29.09.2003 Beiträge: 61 Wohnort: Solingen
|
Verfasst am: 01.10.2003 - 20:14 Titel: jaja, war ein wenig voreilig, habe dafür aber die Lösung:!!! |
|
|
der Ansatz lautet:
set quelldatei to POSIX file "/Users/xxx/Documents"
Ergebnis: HD:Users:xxx:Documents
Bitte kein "of" nach POSIX file,
dann klappts (auch mit dem Nachbarn).  |
|
Nach oben |
|
 |
MDickten •->


Anmeldedatum: 26.01.2005 Beiträge: 12
|
Verfasst am: 26.01.2005 - 12:17 Titel: Naja |
|
|
Das "set the ... to POSIX file ..." geht natürlich nicht immer, weil das schon beim Kompilieren umgerechnet wird. Die Frage ist, wie man beispielsweise ein AppleScript mit einem Posix-Pfad von außen füttern kann. (Bei uns etwa: Skript mit Platzhaltern wird von Cocoa-Anwendung vervollständigt und dann gestartet.) Dann funktioniert das Skript mit der Delimiter-Ersetzung gut, *solange* der Dateiname keinen Slash enthält. Genau das ist bei uns der Fall. Auwei....
Man müßte also jeden Bestandteil des Pfades einzeln darauf prüfen, ob es sich um einen legitimen Pfad handelt und anschließend erst konkatenieren.
*seufz*
MDickten
-----BEGIN GEEK CODE BLOCK-----
Version 3.1
GCS/M d--(++) s--: a? C++$ U P? L- E- W+ N o? K? w--- O? M++ V? PS PE Y+ PGP- t 5? X- R tv-- b++ CI++ D+ G++ e+++ h- r+++ x+++
-----END GEEK CODE BLOCK----- |
|
Nach oben |
|
 |
MDickten •->


Anmeldedatum: 26.01.2005 Beiträge: 12
|
Verfasst am: 26.01.2005 - 13:24 Titel: oder... |
|
|
Laufwerksunabhängig und auch bei Dateien mit "/" im sichtbaren Namen sollte folgendes funktionieren. Schön ist es nicht, aber wenn's erstmal tut....
Code: |
on myConvertPathToHFS from thePath
--Ich glaube, wenn der im Finder sichtbare Dateiname einen Slash
--enthält, wird der interne POSIX-Pfad mit Doppelpunkt gespeichert
set theTempPath to ""
set suchanfang to 2
if thePath begins with "/Volumes" then
set suchanfang to 10
set theDisk to ""
else
set theDisk to (path to startup disk as string)
end if
repeat with i from suchanfang to (count characters of thePath)
if character i of thePath is equal to "/" then
set theTempPath to theTempPath & ":"
else
if character i of thePath is equal to ":" then
set theTempPath to theTempPath & "/"
else
set theTempPath to theTempPath & (character i of thePath)
end if
end if
end repeat
return (theDisk & theTempPath)
end myConvertPathToHFS
set r to myConvertPathToHFS from¬
"/Volumes/PROJEKTE/Programmiertools/iText:1.zip"
|
liefert "PROJEKTE:Programmiertools:iText/1.zip". Sorry, ich hatte keine Lust, das alles noch schön bunt zu machen, kopiert es halt in den Skripteditor.
MDickten
-----BEGIN GEEK CODE BLOCK-----
Version 3.1
GCS/M d--(++) s--: a? C++$ U P? L- E- W+ N o? K? w--- O? M++ V? PS PE Y+ PGP- t 5? X- R tv-- b++ CI++ D+ G++ e+++ h- r+++ x+++
-----END GEEK CODE BLOCK----- |
|
Nach oben |
|
 |
|