AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Dateisuche mit Zäheln der durchsuchten Datei-Grössen
Thema durchsuchen
Ansicht
Themen-Optionen

Dateisuche mit Zäheln der durchsuchten Datei-Grössen

Ein Thema von St.Pauli · begonnen am 14. Mär 2005 · letzter Beitrag vom 14. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#1

Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 16:01
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:
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
Jetztschonmal danke für alle Antworten
Gruß St.Pauli
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 16:20
GetFileSize liefert nur die Größe für Directories (0) oder versteckte Dateien, sonst -1.
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#3

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 16:31
Hatte aus verzweifelung rumprobiert^^ Da stand auch faAnyFile und das ergebnis war das gleiche
Gruß St.Pauli
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 16:40
Du subtrahierst da Bit-Flags, das kann gut gehen, muss aber nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#5

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 16:49
Kapiere ich nicht^^ Kann man das irgendiwe nicht verbessern? Weil eigentlich m ü s s t e es so ja gehen, oder?
Gruß St.Pauli
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#6

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 17:03
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.
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#7

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 17:23
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
if FindFirst(Directory + Mask, faAnyFile - faDirectory, SR) > 0 then SearchedFiles := 1; einsetzte, kommt als bei meinem Label
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
VAR SearchedFiles : integer;
begin
GetFilesInDirectory('C:\','*.*', ListBox1.Items, False, True, SearchedFiles);
Label1.Caption := IntToStr(SearchedFiles);
end;
4361260 raus!
Gruß St.Pauli
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 17:28
Den Code von sakura in der Code-Lib FindFirstFindFirst kann man mit ein paar Codezeilen so umbauen, dass er die Summer aller Dateigrößen zurückliefert.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#9

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 17:29
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;
  Mit Zitat antworten Zitat
Benutzerbild von St.Pauli
St.Pauli

Registriert seit: 26. Dez 2004
351 Beiträge
 
Delphi 7 Personal
 
#10

Re: Dateisuche mit Zäheln der durchsuchten Datei-Grössen

  Alt 14. Mär 2005, 18:27
Ohhh , 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

if FindFirst(AFileName,faAnyFile + faHidden,F)=0 then if FindFirst(AFileName,faAnyFile or faHidden,F)=0 then genommen, und es klappt.

Danke trotzdem an bttb930 und Luckie!!!!!
Gruß St.Pauli
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:53 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