• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Ordner ist da aber er ist eiegntlich ncith da

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Hier ist mein Code, der prüfen soll ob mein Ordner schon existiert und falls nicht, soll er erstellt werden. Ausgegeben wird im Event-Protokoll immer der Wert "exists "Macintosh hd:Users:Benedikt:documents:Datenbank:" true" und ich bekomme die Nachicht "Ordner ist schon da". Das Problem ist: Er existiert nicht. Ich hab ganz genau nachgeschaut. Es muss ein Fehler von AS sein. Muss der Code anders lauten? Dr. google hat nix gebracht, Sufu genau so viel.

set datenbankordner to "Macintosh hd:Users:" & username & ":documents:Datenbank:" as string
if not (exists datenbankordner) then
try
make new folder at ("Macintosh hd:Users:" & username & ":Documents:") with properties {name:"Datenbank"}
display dialog "Ordner erstellt"
end try
else
display dialog "Ornder ist schon da"
end if

danke schonmal im vorraus
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Existenz prüfe man bitte so:

Code:
-- prüfen, ob Ordner oder Datei existiert
on pruefeExistenz(pfad, datei)
    try
        considering case
            if (((pfad & datei) as string) is equal to ((alias (pfad & datei)) as string)) then
                return true
            else
                return false
            end if
        end considering
    on error
        return false
    end try
end pruefeExistenz

Viele Grüße
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
EDIT: siehe Lösung von LittlePixel, hat genau dasselbe geschrieben :)

Gruss ppocket
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Was mir noch auffällt und Du etwas lernen möchtest:

-path to documents folder

So werden Standardpfade gebildet.
Das ist nicht nur bequemer, sondern hat auch einen tieferen Sinn.

Viele Grüße
 

GunBound

Rote Sternrenette
Registriert
23.06.05
Beiträge
6.074
Und mach bitte deine Signatur weg/kleiner!:eek:
Danke!;)
 

pepi

Cellini
Registriert
03.09.05
Beiträge
8.740
Der Ordner heißt übrigens wohl "Documents" und nicht "documents".
Gruß Pepi
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Der Ordner heißt übrigens wohl "Documents" und nicht "documents".
Gruß Pepi

Ist das für Pfadangaben entscheidend? AS setzt doch so gut wie alles immer als kleingeschrieben.

Danke erstmal für die vielen Antworten. Werde das bald testen

Ist meine Signatur so groß? Ich mach sie schon weg. Sie ist sowieso zu langweilig.
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Ist das für Pfadangaben entscheidend? AS setzt doch so gut wie alles immer als kleingeschrieben.
Das eine hast doch nichts mit dem anderen zutun.

Somit: Ja, es ist entscheidend. Deshalb habe ich Dir auch den Tipp gegeben.

Viele Grüße
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Code:
set hereIam to (path to documents folder as string) & "Text.txt"

-path to documents folder ... liefert Dir ein Alias
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
das Problem das der Ordner noch immer gefunden wird, obwohl er nicht da ist.
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Aktueller AS-Code

Genauso wie vorher, nur dass ich eine Zeile geändert habe.
set datenbankordner to (path to documents folder as string) & "Datenbank:" as string
if not (exists datenbankordner) then --dieser Skript gibt immer true aus, was nicht stimmen kann
try
make new folder at (path to documents folder as string) with properties {name:"Datenbank"}
display dialog "Datenbankordner wurde erstellt. Bitte nicht verschieben!"
end try
end if
EDIT: Danke für das Stichwort "ddt" :-D Habe den Titel nicht auf Tippfehler untersucht.
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
*push* nur noch diese eine Sache und mein Programm ist fertig und kann als Version 1.0 gedownloaded werden. Hat noch niemand dieses Problem gehabt?
mfg
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Ich habe Dir einen fertigen Handler gegeben. Siehe Britrag 2.
Das war auch der Grund Deines Threads.

... und jetzt prüfst Du immer noch mit "exists".
Dann bist Du selber Schuld ;)

Viele Grüße
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Ein Versuch

Code:
-- prüfen, ob Ordner oder Datei existiert
on pruefeExistenz(pfad, datei)
    try
        considering case
            if (((pfad & datei) as string) is equal to ((alias (pfad & datei)) as string)) then
                return true
            else
                return false
            end if
        end considering
    on error
        return false
    end try
end pruefeExistenz
Sorry, hab den post völlig übersehen.
muss ich "pfad & datei" mit der Variable ersetzen, die die Pfadangabe enthält? Wenn ich das so mache:
Code:
set datenbankordner to (path to documents folder as string) & "Datenbank:" as string
on pruefeExistenz(datenbankordner)
	try
		considering case
			if (((datenbankordner) as string) is equal to ((alias (datenbankordner)) as string)) then
				return true
				display dialog "Ordner exisitiert"
			else
				return false
				try
					make new folder at (path to documents folder as string) with properties {name:"Datenbank"}
					display dialog "Datenbankordner wurde erstellt. Bitte nicht verschieben!"
				end try
			end if
		end considering
	on error
		return false
	end try
end pruefeExistenz

erscheint
Code:
 path to documents folder as string
		"Macintosh HD:Users:Benedikt:Documents:"
im Event-Protocol, was sich vermutlich auf:
Code:
set datenbankordner to (path to documents folder as string) & "Datenbank:" as string
bezieht.
Der Ordner wurde bei der Prozedur nicht erstellt und keine display dialog erschien.
mfg
 
Zuletzt bearbeitet:

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Grundlagen?

Code:
set datenbankordner to (path to documents folder as string) & "Datenbank:" as string

if (my pruefeExistenz(datenbankordner, "")) then
	-- schon da
else
	-- erstellen
	do shell script "mkdir " & quoted form of POSIX path of datenbankordner
end if


-- prüfen, ob Ordner oder Datei existiert
on pruefeExistenz(pfad, datei)
	try
		considering case
			if (((pfad & datei) as string) is equal to ((alias (pfad & datei)) as string)) then
				return true
			else
				return false
			end if
		end considering
	on error
		return false
	end try
end pruefeExistenz

Du sollst nicht den Handler zerstören.
In diesem werden keine Benutzermeldung eingearbeitet ;)

Viele Grüße
 

sedna

Galloway Pepping
Registriert
22.10.08
Beiträge
1.359
Grundlagen?

Das von dir gepostete Skript ist super. Nur wird es Bomberzocker nicht wirklich weiterhelfen, AS zu verstehen. Den Post #1 betrachtend, sehe ich, dass Bomberzocker glaubt, dass da ein Fehler von AS vorliegt. Dabei verhält sich das Skript doch wie es soll.
16 Posts und niemand weist darauf hin?


@Bomberzocker
Ausgegeben wird im Event-Protokoll immer der Wert "exists "Macintosh hd:Users:Benedikt:documents:Datenbank:" true" und ich bekomme die Nachicht "Ordner ist schon da". Das Problem ist: Er existiert nicht. Ich hab ganz genau nachgeschaut. Es muss ein Fehler von AS sein. Muss der Code anders lauten?

set datenbankordner to "Bla:bla:bla"
exists datenbankordner

Natürlich kommt jetzt ein true. Du hast datenbankordner ja in der ersten Zeile definiert.
Selbst ohne die Abfrage würde übrigens kein Ordner erstellt werden. Wenn Du schon ins Event Protokoll schaust, dann lese es auch komplett! Da steht bestimmt was von current application
Welches Programm erstellt (in reinem AS) Ordner im Programm "Finder"? Und fragt dort Pfade ab?
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Der Aufruf eines Handlers ist Grundlage.
Daran ändert sich nichts. Ist Bestandteil jedes Tutorials. ;)
Mehr mußte er auch nicht umsetzen.

Nur wird es Bomberzocker nicht wirklich weiterhelfen, AS zu verstehen.
Auch, wenn das arrogant klingt, aber es ist Tatsache... wir sind nicht hier um Schulungen vorzunehmen.
Probleme werden aufgeführt und andere Personen geben Hinweise oder Tipps.
Ich habe ihm sogar das fertige Teil geschrieben. ;)

Da unterscheiden wir uns in den Meinungen. Ist auch nicht schlimm.
Du kannst ihm natürlich das auch erklären - das ist dann sehr nett. :)

Viele Grüße
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
dass da ein Fehler von AS vorliegt
Meinem Wissenstand nach ist (war?) "exists" auch immer fehlerhaft.
Je nachdem, mit welcher Partitionierungstabelle die HD bestückt ist.

Viele Grüße