AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

prüfen, ob es ein Ordner ist

Ein Thema von Gina · begonnen am 26. Dez 2004 · letzter Beitrag vom 27. Dez 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 12:00
Was macht DirectoryExists, wenn es sich um eine Datei handelt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 12:01
Ich will schwer hoffen, dass dann false zurückgeliefert wird. Schrieb ich aber auch schon oben.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 12:03
Zitat von Luckie:
Was macht DirectoryExists, wenn es sich um eine Datei handelt?
Ich meinte das so

Datei: c:\Rumpelstilzchen\Feuerlöscher.jpg
Ordner: c:\Rumpelstilzchen\Feuerlöscher.jpg\ <== so kann ja auch ein Ordner heißen

Wenn der Ordner nun ohne Backslash am Ende da steht und es diese Datei auch gibt, kann man es wohl nicht unterscheiden, oder irre ich mich da?
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#14

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 12:08
Probier es aus, aber ich meine, dass es mit DirectoryExist geht.

PS: Kann es gerade selber nicht ausprobieren...
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#15

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 12:14
Uii, so schnell kann man ja kaum mitlesen...

Mal schauen, ob ich alles entdeckt habe. Also:

Mit Dateiendung abfragen geht nicht, weil auch Dateien bei sind, die evtl keine Endung haben, aber trotzdem keine Ordner sind und umgekehrt kanns ja auch sein.

FindFirst: Bitte nicht schlagen, aber wenn ich FindFirst auf einen Ordner anwende, frage ich dann nicht den Inhalt des Ordners ab und nicht den Ordner selbst?

An DirectoryExists hatte ich auch schon gedacht, bin aber davon ausgegenagen, dass es "unsauber" sei... Aber wenn es schnell und zuverlässig ist... Werds gleich mal testen.

Bis gleich, Gina.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#16

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 12:16
Zitat von Gina:
FindFirst: Bitte nicht schlagen, aber wenn ich FindFirst auf einen Ordner anwende, frage ich dann nicht den Inhalt des Ordners ab und nicht den Ordner selbst?
Nein, entscheidet ist diese Zeile:
Result := ((f.dwFileAttributes and faDirectory) = faDirectory); Dort wird geprüft, ob die gefundene Datei ein Ordner ist oder nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#17

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 13:09
Also ich kann unter XP keine Datei mit dem gleichen Namen wie ein im selben Verzeichnis befindlichen Ordner erstellen... Ist das immer so? Dann würde DirectoryExists funktionieren. Es wird auf jeden Fall false zurückgegeben, wenn eine Datei ohne Dateiendung geprüft wird...

Das wäre dann wohl das Kürzeste, oder?

Thx, Gina.

PS: Was ist eigentlich "dwFileAttributes" ? Ist das aus D2005?
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 14:23
Moin Zusammen,

warum beisst ihr euch eigentlich alle an DirectoryExists fest?
Wenn sicher ist, dass es sich um eine Datei oder ein Verzeichnis handelt, könnte man einfach mit FileExists prüfen, ob es eine Datei ist.

BTW:
Meiner Erfahrung nach funktioniert DirectoryExists unter Windows ME nicht sauber, zumindest die Version aus D5.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#19

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 15:04
Hi, hier will doch keiner beißen

Es geht lediglich um eine schnelle und sichere Methode, um zu prüfen, ob es ein Ordner ist. Ich sehe da keinen großen Unterschied, ob ich nun FileExist oder DirectoryExist nehme. Ob nun eine davon verläßlicher ist, kann ich leider nicht beurteilen. Die Frage ist, ob eins der beiden ausreicht.

"Wenn sicher ist, dass es sich um eine Datei oder ein Verzeichnis handelt..."

Was könnte es denn sonst noch sein? Ein Laufwerk wird als Ordner erkannt, was für meine Zwecke ok ist...

Nochmal zu faDirectory:

Kann ich das zur auch Prüfung benutzen, ohne vorher FindFirst anzuwenden? Ich bin immernoch der Meinung, dass mit FindFirst der Inhalt des angegebenen Pfades nach Ordnern geprüft wird, nicht der Pfad selbst. Ansonsten hab ich Euch falsch verstanden. Vielleicht hilft mir dann ein kleines Beispiel weiter, wie es gemeint sein soll? Das wäre supi.

Vielen lieben Dank, Gina.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 17:09
Moin Gina,

Zitat von Gina:
Kann ich das zur auch Prüfung benutzen, ohne vorher FindFirst anzuwenden?
Nein kannst Du nicht, denn womit willst Du es denn vergleichen?

Zitat von Gina:
Ich bin immernoch der Meinung, dass mit FindFirst der Inhalt des angegebenen Pfades nach Ordnern geprüft wird, nicht der Pfad selbst.
FindFirst liefert Dir immer das erste Auftauchen des angegebenen Pfades zurück, unabhängig davon, ob es sich um eine Datei oder ein Verzeichnis handelt, natürlich vorausgesetzt, dass der angegebene Pfad überhaupt existiert.
Wenn jetzt der Pfad keine Wildcards (*,?) enthält wird exakt der angebene Pfad gesucht.

Ich habe die Erfahrung gemacht, dass es am Besten ist als Attributflags faAnyFile anzugeben, und anschliessend auf Directory usw. zu prüfen.

Für Deinen Anwendungsfall dürfte allerdings die unmittelbare Prüfung mittels DirectoryExists/FileExists am meisten Sinn machen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr.
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