![]() |
Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Hi @ all,
Unten ist ein Teil des Codes. Ziel ist es, dass ich am Ende schreiben kann: "... mit der insgesamten Größe von xxxxx durchsucht" Aber irgendwie klapp es nicht. Es gibt zwar keinen Fehler beim Comp. doch ich habe es einfach mal auf C:\ getestet, ohne Unterordner, und die Zahl war viel kleiner als die Tatsächliche Größe aller Dateien. Hat jemand einen Plan, was ich falsch gemacht habe???
Delphi-Quellcode:
function GetFileSize(const AFileName: String): Integer;
var F: TSearchRec; begin Result:=-1; if FindFirst(AFileName,faDirectory + faHidden,F)=0 then begin try Result := F.Size; finally FindClose(F); end; End; end;
Delphi-Quellcode:
Jetztschonmal danke für alle Antworten
procedure GetFilesInDirectory(Directory: String; Mask: String; List: TStrings; WithSubDirs, ClearList: Boolean; a : integer);
procedure ScanDir(const Directory: String); var SR: TSearchRec; SearchedFiles : int64; begin SearchedFiles := 0; if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) < 0 then SearchedFiles := SearchedFiles + GetFileSize(Directory + SR.Name); if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) > 0 then SearchedFiles := SearchedFiles + GetFileSize(Directory + SR.Name); if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then SearchedFiles := SearchedFiles + GetFileSize(Directory + SR.Name); if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try repeat List.Add(Directory + SR.Name); until FindNext(SR) <> 0; finally FindClose(SR); end; a := SearchedFiles; if WithSubDirs then begin |
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
GetFileSize liefert nur die Größe für Directories (0) oder versteckte Dateien, sonst -1.
|
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Hatte aus verzweifelung :wink: rumprobiert^^ Da stand auch faAnyFile und das ergebnis war das gleiche
|
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Du subtrahierst da Bit-Flags, das kann gut gehen, muss aber nicht.
|
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Kapiere ich nicht^^ Kann man das irgendiwe nicht verbessern? Weil eigentlich m ü s s t e es so ja gehen, oder?
|
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
debug doch mal die getfilesize. vielleicht ist der dateiname falsch (evtl. fehlt der pfad oder ein backslash zw. pfad und dateinamen).
ich hab keine lust das für dich zu machen. |
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Musst du ja auch nicht. Ich hab halt nur keinen Plan.
Glaube aber das ganze hat garnichts mit Bit-Flags und getfilesize zu tun. Selbst wenn ich
Delphi-Quellcode:
einsetzte, kommt als bei meinem Label
if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) > 0 then SearchedFiles := 1;
Delphi-Quellcode:
4361260 raus!
procedure TForm1.Button1Click(Sender: TObject);
VAR SearchedFiles : integer; begin GetFilesInDirectory('C:\','*.*', ListBox1.Items, False, True, SearchedFiles); Label1.Caption := IntToStr(SearchedFiles); end; |
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Den Code von sakura in der Code-Lib
![]() |
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
wahrscheinlich muß es einfach heissen:
Delphi-Quellcode:
SearchedFiles := 0;
SizeSum := 0; if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) = 0 then try repeat List.Add(Directory + SR.Name); SizeSum := SizeSum + GetFileSize(IncludeTrailingBackslash(Directory) + sr.Name); until FindNext(SR) <> 0; finally FindClose(SR); end; |
Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Ohhh :idea: , ich glaub ich habs. Hab es jetzt so gemacht, dass die Filesize in eine 2 ListBox geladen wird. So konnte ich dann vergleichen, bei welchen Dateien -1 steht. Dann hab ich nachgeguckt, und die waren alle versteckt. Jetzt hab ich einfach statt
Delphi-Quellcode:
if FindFirst(AFileName,faAnyFile + faHidden,F)=0 then
Delphi-Quellcode:
genommen, und es klappt.
if FindFirst(AFileName,faAnyFile or faHidden,F)=0 then
Danke trotzdem an bttb930 und Luckie!!!!! :thumb: :thumb: :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:06 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