![]() |
FindAllFiles - nur den Pfad als Result
Grüss euch !
Ich habe mir mal Luckies tolles ![]()
Delphi-Quellcode:
Bedeutet ich lasse mir einen gefundenen Eintrag in die Lustbox schreiben. In diesem Fall nur der Filename.
Listbox1.Items.Add(ExtractFilename(PChar(Msg.LParam)));
Delphi-Quellcode:
Diese Variante liefert mir den ganzen Pfad + Dateiname. Ich möchte den Dateinamen weglassen.
Listbox1.Items.Add(PChar(Msg.LParam));
Mit dem guten alten GetFilesInDirectory war das überhaupt kein Problem. Bevor ich jetzt den String auf Backslashes durchsuche, zerpflücke und und... möchte ich das Problem gleich bei der Wurzel Packen.
Delphi-Quellcode:
Beim debuggen stand in RootFolder genau mein Pfad und in wfd.cFileName der Dateiname. Wenn ich wfd.cFileName entferne bekomme ich trotzdem jedes mal den Pfad+Dateinamen angezeigt. Wo genau muss ich den Rotstift ansetzen damit nur der Pfad als Result ohne den Dateinamen zurück kommt?
procedure TFindFiles.Find(Handle: THandle; RootFolder: string; Mask: string; Recurse: Boolean = True);
var hFindFile : THandle; wfd : TWin32FindData; begin if FFTerminate then Exit; Inc(FLevel); if RootFolder[length(RootFolder)] <> '\' then RootFolder := RootFolder + '\'; ZeroMemory(@wfd, sizeof(wfd)); wfd.dwFileAttributes := FILE_ATTRIBUTE_NORMAL; if Recurse then begin hFindFile := FindFirstFile(pointer(RootFolder + '*.*'), wfd); if hFindFile <> 0 then try repeat if wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then begin if (string(wfd.cFileName) <> '.') and (string(wfd.cFileName) <> '..') then begin SendMessage(Handle, FFM_ONDIRFOUND, FLevel, lParam(string(RootFolder + wfd.cFileName))); Find(Handle, RootFolder + [b]wfd.cFileName[/b], Mask, Recurse); end; end; until FindNextFile(hFindFile, wfd) = False; Inc(FiFolder); SendMessage(Handle, FFM_PROGRESS, FiFolder, 0); finally Windows.FindClose(hFindFile); end; end; hFindFile := FindFirstFile(pointer(RootFolder + Mask), wfd); if hFindFile <> INVALID_HANDLE_VALUE then try repeat if (wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY <> FILE_ATTRIBUTE_DIRECTORY) then begin SendMessage(Handle, FFM_ONFILEFOUND, 0, lParam(string(RootFolder + [b]wfd.cFileName[/b]))); end; until FindNextFile(hFindFile, wfd) = False; finally Windows.FindClose(hFindFile); end; Dec(FLevel); end; Grüsse aus NRW! |
Re: FindAllFiles - nur den Pfad als Result
wenn ich dich jetzt richtig verstehe dürfte dir eventuell ExtractFilePath(); helfen :)
wenn nicht dann vergiss das :mrgreen: |
Re: FindAllFiles - nur den Pfad als Result
Was ist eine Lustbox? Schweinkram? :mrgreen:
|
Re: FindAllFiles - nur den Pfad als Result
|
Re: FindAllFiles - nur den Pfad als Result
Natürlich geht ExtractFilePath :wall:
[Oftopic] Eine Lustbox... hmm - eine Spielkonsole? - (schlechte) deutsche Übersetzung für Joystick? :mrgreen: [/offtopic] |
Re: FindAllFiles - nur den Pfad als Result
Hallo,
verstehe das nicht ganz, reicht nicht hier
Delphi-Quellcode:
RootFolder wegzulassen?
SendMessage(Handle, FFM_ONDIRFOUND, FLevel, lParam(string(RootFolder + wfd.cFileName)));
Stephan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz