ShelltreeView überprüfen ob item ein Ordner ist
Hallo,
zusammen ich lese mit folgender Funktion einzelne Zeilen eines ShellTreeview aus
Delphi-Quellcode:
wie kann ich jetzt feststellen ob diese Zeile ein Verzeichnis ist.
shelltreeview1.Items.Item[i].Text
MfG Benjamin |
Re: ShelltreeView überprüfen ob item ein Ordner ist
hi,
also wenn Text dir den kompletten Pfad liefert, kannst du mit:
Code:
überprüfen, ob es ein Ordner ist.
DirectoryExists(pfad)
|
Re: ShelltreeView überprüfen ob item ein Ordner ist
Delphi-Quellcode:
Wird eine Datei angegeben, die nicht existiert, liefert die Funktion auch wahr zurück.
function IsDir(Dir: string): Boolean;
var wfd: TWin32FindData; hFile: THandle; begin hFile := FindFirstFile(PChar(Dir), wfd); result := ((wfd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and (hFile = INVALID_HANDLE_VALUE); if hFile <> INVALID_HANDLE_VALUE then Windows.FindClose(hFile); end; procedure TForm1.Button1Click(Sender: TObject); begin if IsDir('E:\Delphi\Programme') then ShowMessage('Verzeichnis') else ShowMessage('Datei'); end; [Edit] Mist, da ist DirectoryExists besser. :roll: [Edit2] Verbessert. ;) [Edit3] Habe noch was besseres von Assarbad gefunden:
Delphi-Quellcode:
function FileExists(const FileName: string; dir: boolean = false): Boolean;
var hidate, lodate: word; Handle: THandle; FindData: TWin32FindData; LocalFileTime: TFileTime; type LongRec = packed record Lo, Hi: Word; end; function SubFileExists: Boolean; begin FileTimeToLocalFileTime(FindData.ftLastWriteTime, LocalFileTime); result := FileTimeToDosDateTime(LocalFileTime, HiDate, LoDate); end; begin result := false; Handle := FindFirstFile(PChar(FileName), FindData); if Handle <> INVALID_HANDLE_VALUE then begin Windows.FindClose(Handle); case dir of TRUE: if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) <> 0 then result := SubFileExists; FALSE: if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then result := SubFileExists; end; end; end; |
Re: ShelltreeView überprüfen ob item ein Ordner ist
Hallöle,
es geht doch auch so:
Delphi-Quellcode:
ciao
procedure IsFolder( node : TTreeNode ) : boolean;
var Fldr : TShellFolder; begin Fldr := TShellFolder( node.data ); result := Fldr.IsFolder; end; [edit=Admin]Code in Delphi-Tags gesetzt. Künftig bitte selber machen. Mfg, Daniel[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:02 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