Entwickler-Ecke
Dateizugriff - Probleme mit Pfadtiefe
read - Di 18.01.05 09:14
Titel: Probleme mit Pfadtiefe
Hallo zusammen!
ich hab mal kurze 'ne Frage zur Pfadtiefe. Und zwar hab ich mir 'ne Delphi 2 Developer Version geholt. Bei dem Versuch ein Verzeichnis zu erstellen, bzw. beim schreiben einer Datei hab ich jetzt aber das Problem, daß ich das ganze nicht in Unterverzeichnisse bekomme.
Wenn ich direkt auf c: ein Verzeichnis erstellen will - kein Problem, wenn ich 'ne Datei erstellen will(direkt auf c:) kein problem.....aber sage ich erstelle ein Verzeichnis/Datei in c:\test\neu(Beispiel) bekomme ich eine fehlermeldung "Kann Verzeichnis/Datei c:\test\neu\bsp.txt nicht erstellen"
kennt jemand das Problem und hat vielleicht 'ne Lösung wie man das umgehen kann
gruß
marco
Heiko - Di 18.01.05 09:18
Wenn es den Unterordner nicht gibt, musst du den Ordner vom Programm aus erstellen.
jasocul - Di 18.01.05 09:19
Dazu zwei Fragen:
1. Bist du ganz sicher, dass das Verzeichnis existiert, in dem du die Datei erstellen willst (auf Tippfehler prüfen)?
2. Kannst du den Source zeigen, wo du die Datei erstellst?
Das Erstellen von Dateien ging schon in Turbo-Pascal problemlos. Es kann also nicht an der Delphi-Version liegen.
read - Di 18.01.05 09:50
Guten Morgen zusammen
hier mal kurz der Code dazu
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm2.Button2Click(Sender: TObject); var filepath : string; begin filepath := extractfilepath(paramStr(0)); listbox1.Items.SaveToFile(filepath + 'config.dat'); form2.Close; form1.Show; end; |
ähnlich mach ich das mit dem Directory
if not DirectoryExists ...... then CreateDir ........
funktioniert unter Delphi 7 problemlos
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
jasocul - Di 18.01.05 09:53
Mach doch mal ein ShowMessage mit filepath. Eventuell fehlt der "\" zwischen dem Pfad und der Datei.
EDIT: In der OH von D5 steht, dass extractfilepath den "\" mit angibt.
Heiko - Di 18.01.05 09:56
Unter D6 Prof funktioniert der Quelltext. Warum das bei dir nicht funktioniert kann ich dir nicht sagen.
read - Di 18.01.05 09:58
moment...hab grad 'n Bildschirmausdruck gemacht
werde es mal gleich hier posten - also es sind alle '\' vorhanden
Heiko - Di 18.01.05 09:59
@jasocul Das Zeichen "\" ist vorhanden (damit das Zeichen nicht mir rauskopiert wird, müsste er ExtractFileDir nehmen :wink: ).
read - Di 18.01.05 10:01
hallo heiko
das is ja das was ich auch net versteh . . . unter Delphi7 pers. funktioniert es ja auch ohne probleme
nur halt die zweier version - will net so wie ich :?
Heiko - Di 18.01.05 10:03
Die Anwendung gibt aber den richtigen Pfad zurück, oder?
jasocul - Di 18.01.05 10:08
Speicherst du lokal oder auf einem Server? Könnte es ein Rechte-Problem sein?
Wenn es das nicht ist, fällt mir so im Moment auch nichts mehr ein.
read - Di 18.01.05 10:20
hmm wollte grad das pic posten ... aber irgenwie ist der server zu zeit down :-(
naja, um auf eure fragen zurückzukommen...ja, er gibt den richtigen Pfad zurück
und ja, ich speichere auf eine server....aber auch lokal funktioniert es net
genauso, wie mir delphi2 ständig abschmiert, wenn ich den code vom server aus öffne ...wenn ich ihn vom lokalen laufwerk öffne läuft delphi ohne probleme - haare ausrauf -
Heiko - Di 18.01.05 10:30
Irgendiwe komisch das es lokal auch nicht funktioniert. Beim Netzwerk kann ich dir nicht helfen. Nimm mal ein neues Project, leg darauf einen Button und eine ListBox, füge in die ListBox, von der Entwicklungsumgebung aus, ein paar Strings ein und füge dann den Quelltext, den du gepostet hast, beim Button ein. Probier es danach aus. Wenn es beim neuen Porject auch nicht funktioniert, kann ich dir auch nicht helfen. Am besten schreibst du das Programm unter Delphi 7, da müsste es eigentlich funktionieren.
Warum nimmst du überhaupt Delphi 2 und nicht Delphi 7?
jasocul - Di 18.01.05 10:31
Ganz ruhig bleiben. Wir sind ja da :wink:
Probier das ganze jetzt nochmal lokal. Lass dir dabei die Pfad-Variable anzeigen. Es kann nämlich passieren, dass der Compiler das Programm als EXE auf dem Server ablegt. Dann hast du wieder den Server-Pfad.
Hast du eine Laufwerksverbindung mit dem Server oder Verbindung wie: "\\SERVERNAME\Pfad\"? Mist, habe jetzt doch glatt vergessen, wie man das nennt. :oops:
Ich meine, dass es in den frühen Delphi-Version mit solchen Angaben nicht funktioniert.
read - Di 18.01.05 10:45
@ Heiko
delphi2 nehm ich, da das projekt für die Firma ist in der ich arbeite ... und die haben auch nur 'ne Delphi2 developer version ....die kommt mit den forms aus delphi7 net klar
@ peter
lokal das selbe problem....direkt auf c: kann ich datei und directory erstellen....geh ich weiter rein 'c:\test\neu' is ende im gelände
selbe fehlermeldung wie auf dem bild
gruß
marco
jasocul - Di 18.01.05 10:50
Dann kann ich dir nur ein WorkAround empfehlen mit ChDir. Das ist eine Delphi-Funktion, mit der du das aktuelle Verzeichnis wechseln kannst. Ich hoffe, dass es das schon in D2 gibt.
read - Di 18.01.05 11:02
hallo peter
chdir existiert - werde ich mal damit auseinandersetzen
gruß
marco
Heiko - Mi 19.01.05 11:55
Und funktionierts?
Wenn nicht versuch es doch mal mit TFileStream.
read - Mi 19.01.05 12:01
hallo Heiko
das Problem lag an einer Stelle, wo ich nur durch dummen Zufall draufgekommen bin
das System (Betriebssystem) hat beim anlegen der *.dat Datei die ganze schreibgeschützt..
naja und beim nächsten zugriff gab's halt den beschriebenen Fehler
sorry und nochmal vielen Dank an Euch
gruß
Marco
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!