Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Überprüfen, ob eine Datei vorhanden ist... (https://www.delphipraxis.net/135022-ueberpruefen-ob-eine-datei-vorhanden-ist.html)

JBJHJM 3. Jun 2009 11:38


Überprüfen, ob eine Datei vorhanden ist...
 
Hi,
1. Wie kann ich prüfen, ob eine Datei ("settings.kk" habe ich sie genannt) im Programmverzeichnis vorhanden ist?
2. Gibt es eine Möglichkeit, einen String in einen Dateipfad umzuwandeln?
Vielen Dank euch allen!!!

hoika 3. Jun 2009 11:41

Re: Überprüfen, ob eine Datei vorhanden ist...
 
Hallo,

1. FileExists (per ExtractFilePath(Application.ExeName) bekommst du den Pfad deiner Exe)

Besser wäre es aber, die Datei in einen der "Special Folders" (suche hier danach) abzulegen
Im Programm-Verzeichnis gibt es normalerweise kein Schreibrecht.

2. hm ?? genauer, was willst du machen ?


Heiko

Klaus01 3. Jun 2009 11:43

Re: Überprüfen, ob eine Datei vorhanden ist...
 
Zitat:

Zitat von JBJHJM
Hi,
1. Wie kann ich prüfen, ob eine Datei ("settings.kk" habe ich sie genannt) im Programmverzeichnis vorhanden ist?
2. Gibt es eine Möglichkeit, einen String in einen Dateipfad umzuwandeln?
Vielen Dank euch allen!!!

zu 1. Schau mal in Deine Delphi Hilfe zu FileExists nach.
zu 2. Was meinst Du denn damit, ein Dateipfad ist ein String.

Grüße
Klaus

JBJHJM 3. Jun 2009 12:19

Re: Überprüfen, ob eine Datei vorhanden ist...
 
@ Klaus: Tja, also ich habe als String einen Pfad zu einer bestehenden Datei angegeben, aber er konnte die Datei nicht finden - evtl. lag das aber daran, dass das Zugriffsrecht fehlte...

@ Hoika: Mit ExtractFilePath(Application.ExeName) hatte ich es auch probiert, und dann halt den Dateinamen angehängt. Die eigentlich existente Datei konnte er aber so nicht finden. Aber evtl. liegts doch an was anderem.

Vielen Dank, werde mir die Special Folders und FileExists mal angucken!

hoika 3. Jun 2009 13:05

Re: Überprüfen, ob eine Datei vorhanden ist...
 
Hallo,

hast du dir im Debugger auch mal den String angesehen ?
ExtractFilePath gibt u.a. den Pfad ohne den Backslash \ zurück.

Zitat:

als String einen Pfad zu einer bestehenden Datei
Der Pfad reicht aber nicht, es muss auch der Name der Datei angegeben werden

FileExists('c:\programme') könnte fehlschlagen.


Heiko

jaenicke 3. Jun 2009 13:19

Re: Überprüfen, ob eine Datei vorhanden ist...
 
Zitat:

Zitat von JBJHJM
Vielen Dank, werde mir die Special Folders und FileExists mal angucken!

Ich habe dazu auch etwas veröffentlicht. Die Klasse nimmt dir u.a. die Arbeit mit der Suche und Verwaltung der Einstellungen ab. Eine Demo ist dabei.
http://www.delphipraxis.net/internal....php?p=1042717
// EDIT: Gerade noch ne neue Version rausgegeben. ;-)

JBJHJM 3. Jun 2009 21:21

Re: Überprüfen, ob eine Datei vorhanden ist...
 
@ hoika: Ja, den erzeugten Pfad mit Dateiname habe ich mir vorher immer noch anzeigen lassen, der stimmte, aber er hat halt die Datei nicht gefunden...

@ jeanicke: *leees* ... :arrow: :!:

Klaus01 3. Jun 2009 22:23

Re: Überprüfen, ob eine Datei vorhanden ist...
 
.. wo liegt denn die Datei?
(virtualisiertes Dateisystem?)
Welches Betriebssystem XP/Vista?

Gute Nacht
Klaus

JBJHJM 7. Jun 2009 19:33

Re: Überprüfen, ob eine Datei vorhanden ist...
 
direkt im Programmverzeichnis, allerdings liegt das wiederum häufig auf einem USB-Stick, vielleicht ist das schon das Problem. Ich benutze XP.

Klaus01 7. Jun 2009 19:50

Re: Überprüfen, ob eine Datei vorhanden ist...
 
Zitat:

Zitat von JBJHJM
direkt im Programmverzeichnis, allerdings liegt das wiederum häufig auf einem USB-Stick, vielleicht ist das schon das Problem. Ich benutze XP.

Wenn das Programm von einem USB-Stick gestartet wurde und er USB-Stick als
Laufwerk erkennbar ist, dann sollte ExtractFilePath(ParamStr(0)) oder ExtractFilePath(Application.exeName)
funktionieren.

Du kannst Dir ja mal die Pfade in einer MessageBox (oder sonstwo) ausgeben lassen,
dann weißt Du zumindest wo das Programm sich vermutet zu befinden.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:15 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz