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 3 von 3     123   
Benutzerbild von Gina
Gina

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

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 16:28
Hmm, dann mache ich irgendwas falsch, denn wenn ich auf faDirectory prüfe, liefert er mir false zurück, obwohl ich definitiv einen Ordner prüfe...

Kannst du mir mal please die genaue Formulierung posten?

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

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

Re: prüfen, ob es ein Ordner ist

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

zeig' doch mal, wie Du es machst.
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
 
#23

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 18:24
Also ich hab das unter anderem so probiert:

Delphi-Quellcode:
if (FindFirst(Datei,faDirectory,SR) = 0) then
if ((SR.Attr and faDirectory) = faDirectory) then
Gina.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#24

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 18:29
Zitat von Gina:
Also ich hab das unter anderem so probiert:

Delphi-Quellcode:
if (FindFirst(Datei,faDirectory,SR) = 0) then
if ((SR.Attr and faDirectory) = faDirectory) then
Gina.
Hi,

hast Du es schonmal mit meiner Variante probiert? Die sollte eigentlich funktioniern...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

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

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 18:40
Ne, sorry. Hab nur Delphi 6. Und bei deinem Code kenne ich einiges nicht. z.B. das: 'dwFileAttributes'

Außerdem sollte es so kurz wie möglich sein, weil es in einer Schleife aufgerufen wird. Das kann dann schon mal mehrere tausend Mal sein...

Gina.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#26

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 18:44
Zitat von Gina:
Ne, sorry. Hab nur Delphi 6. Und bei deinem Code kenne ich einiges nicht. z.B. das: 'dwFileAttributes'

Außerdem sollte es so kurz wie möglich sein, weil es in einer Schleife aufgerufen wird. Das kann dann schon mal mehrere tausend Mal sein...

Gina.
Sicher?

Ich habe es eben unter Delphi 6 Personal getestet und den Code in ein neues Projekt kopiert. Es lief einwandfrei.

Du musst lediglich die Units Windows (TWin32FindDataW und TWin32FindDataA, etc.) und SysUtils (ExcludeTrailingBackslash) in Deiner Uses-Liste haben.

Die Länge sollte hier keine allzu große Rolle spielen. Im Notfall kannst du ja nur die IsDirectoryA() Funktion benutzen. Die ist relativ kurz, kann aber nur mit ANSI-String Pfaden umgehen.

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: prüfen, ob es ein Ordner ist

  Alt 26. Dez 2004, 19:12
Moin Gina,

probier's mal so:

Code:
if (FindFirst(Datei,[color=red][b]faAnyFile[/b][/color],SR) = 0) then
[EDIT]
Mirages Source per Copy&Paste in D6 kopiert: Kompiliert anstandslos.
An D6 kann's nicht liegen.
[/EDIT]
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
 
#28

Re: prüfen, ob es ein Ordner ist

  Alt 27. Dez 2004, 11:02
Zitat von Christian Seehase:
probier's mal so:

Code:
if (FindFirst(Datei,[color=red][b]faAnyFile[/b][/color],SR) = 0) then
Bringt leider genau das gleiche Ergebnis... Vielleicht haben wir uns auch mißverstanden.
Nehmen wir mal an, in Datei steht 'F:\test\utest\'. Ich möchte jetzt wissen, ob utest ein Ordner ist oder eine Datei. Wenn ich jetzt FindFirst anwende, schaut er in F:\test\utest rein und sucht dort nach dem ersten Eintrag und prüft, ob es ein Ordner oder eine Datei ist. Entsprechend sieht auch das Ergebnis im Debug-Modus aus. Und genau so verstehe ich auch die Funktionsweise von Findfirst.

[EDIT:] Ok, jetzt hab ichs kapiert. Es hängt alles an dem letzten Backslash. Wenn der da ist, sucht er in dem Verzeichnis und wenn er weg ist sucht er das Verzeichnis... Ist schon erstaunlich, was so ein kleines Zeichen bewirken kann. Sorry für die Verwirrung. Jetzt muss ich mir nur überlegen, ob ich es so mache, weil ich dann immer zuerst den Backslash wegnehmen müßte und ihn danach wieder ransetzen müßte...

Vielen lieben Dank für Eure Geduld. Jetzt muss ich nur noch rausfinden, was am schnellsten geht und dann ist meine Frage erledigt... [/EDIT]

Zitat von Christian Seehase:
[EDIT]
Mirages Source per Copy&Paste in D6 kopiert: Kompiliert anstandslos.
An D6 kann's nicht liegen.
[/EDIT]
Sorry, ich hab ja gesagt, dass ich ihn nicht probiert hatte, weil ich erst wissen wollte was das für Befehle sind... Da sie mir völlig unbekannt waren und die Delphi-Hilfe auch nix dazu sagen konnte, dachte ich sie seinen aus D2005...

Inzwischen hab ich ihn natürlich getestet. Er funktioniert auch einwandfrei. Ich werd mal schauen, ob ich das etwas abkürzen kann, weil so wie er ist, braucht er etwa doppelt so lange wie eine Prüfung mit DirectoryExists, wobei mir das eigentlich sagt, dass DirectoryExists ziemlich lahm zu sein scheint...

Vielen lieben Dank für die Hilfe, Gina.
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

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

Re: prüfen, ob es ein Ordner ist

  Alt 27. Dez 2004, 12:56
Soo...

Von der Schnelligkeit her nimmt sich FindFirst, IsDirectory von Mirage und auch FileExists gar nichts.

Einzig und alleine DirectoryExists ist immer noch schneller. Warum auch immer. Das bezieht sich natürlich nur auf mein System und meine Delphi-Version und kann mit einer anderen Konfiguration ganz anders aussehen.

Ich würde mich daher erstmal für DirectoryExists entscheiden.

Ist irgendjemandem noch etwas eingefallen, wo damit Probleme auftauchen könnten? Wo mir also eventuell nicht das gewünschte Ergebnis angezeigt werden könnte?

Thx, Gina.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 23:04 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