AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Rekursives durchsuchen und Letzten Dateizugriff auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Rekursives durchsuchen und Letzten Dateizugriff auslesen

Ein Thema von AnyKey · begonnen am 15. Apr 2010 · letzter Beitrag vom 17. Apr 2010
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#11

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 07:28
Wie bekomme ich das hin, die Dateien mit Pfaden in eine Stringlist zu schreiben? Beim debuggen habe ich festgestellt das in GetAllFilesInDirectory scheinbar garnichts in die Liste geschrieben wird. Als ich das ganze aber mit einer ListBox probiert habe standen da die Dateien drin.

Und wie mache ich das, dass ich die Dateigröße auslesen kann?

Gruß
AnyKey
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 08:27
Du musst Zeile 34 ändern. Und schau Dir die Routine noch einmal genau an. Wenn eine Datei gefunden wird, musst Du halt zusätzlich zu TSearchRec.Name noch TSearchRec.Size auslesen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#13

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 09:18
Ist TSearchRec.Time dann die Zeit des letzten Zugriffs? Dann müsste ich nur drei oder eine Liste/n übergeben und die Werte da reinschreiben richtig? Dann könnte ich sie in meine Datenbank schreiben und später damit arbeiten. Das Problem ist nur das mit der Übergabe der liste, irgendwie steht da nichts drin wenn ich eine StringList übergebe. Hat da vielleicht jemand eine Idee?

Was genau meinst du mit Zeile 34? die Schleife in der ich die LastAccessTime auslesen wollte? Das habe ich schon raus genommen.

Edit: Vorallem, wie sieht die Time dann überhaupt aus? Da sind ja keine Punkte drin oder?

Gruß
AnyKey
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 09:29
Das mit Zeile 34 war ironisch gemeint, da Du uns vorenthältst, wie Du die Routine aufrufst. Und an die Zeitangaben kommst Du auf jeden Fall über TSearchRec.FindData (was einem WIN32_FIND_DATA-Record entspricht), das wurde auch bereits gesagt. Sieh Dir doch einfach genau an, wie der Record TSearchRec aufgebaut ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#15

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 10:00
Aso ^^ ok also der Procedure kopf sieht folgendermaßen aus:

Delphi-Quellcode:
class procedure TDataWork.GetAllFilesInDirectorys(Directory: string; List: TStrings; ClearList: Boolean);
procedure ScanDir(const Directory: string);
var Mask : string;
var SR : TSearchRec;
begin
Der Aufruf der Funktion dann so:
TDataWork.GetAllFilesInDirectorys(Pfad,List,true); => List ist eine Stringliste

Ist Size denn dann die Dateigröße oder muss ich SR.FindData.nFileSizeHigh nehmen? wo ist bei FileSize und DateTime der Unterschied zwischen High und Low? Den Ersteller einer Datei kann ich darüber aber nicht auslesen soweit ich das gesehen habe oder?

Danke für eure Hilfe und Geduld!

Edit: ich brauch echt hilfe, komm überhaupt nicht weiter... wie muss ich die Liste übergeben, damit sie gefüllt wird? Wenn ich diese Werte ausgelesen habe klappt der rest denke ich! Nur wie man den Ersteller einer Datei ausliest muss ich noch rausfinden, bzw. testen!

Gruß
AnyKey
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 10:23
Zitat von AnyKey:

Edit: außerdem sind die beiden oben genannten Werte FileSize und DateTime vom Typ Cardinal, wie bekomme ich die in einen String, damit ich sie in die Liste schreiben kann?

AnyKey
Für "Filesize" bietet sich InttoStr an! und für "DateTime" FileDatetoDateTime.

Und was den Ersteller/Besitzer angeht dann such mal unter dem Stichwort Active Directory oder ADS.

Gruß
K-H

P.S.
Wenn Du Deinen Sourcecode als Staatsgeheimnis behandelst, ist es recht schwer Dir vernünftig zu helfen.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 10:47
Wozu verlinke ich die Hilfe, wenn diese dann nicht gelesen wird? Und eine Zeitangabe enthält keine Punkte, egal, ob als FileTime oder TDateTime, da es sich um Zahlen handelt. Die Punkte kommen erst bei deren Darstellung ins Spiel, welche man ja z.B. mit FormatDateTime beeinflussen kann.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#18

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 11:58
Habe mir die Hilfe durchgelesen, war auch so schlau mal in die Delphi Hilfe zu gucken. Naja ich kenn mich mit den sachen halt nicht aus, habe ich noch nie was mit gemacht. Tut mir leid wenn ich es euch unnötig schwer mache, bin froh das ihr mir helft!

Ok, das mit dem Datum und der Größe habe ich jetzt auch so, nur wie kann ich das jetzt in meine Stringlist schreiben, die ist leider immer noch leer und ich weiß nicht warum. Das Debugen hab ich schon probiert, das hilft mir nicht weiter, scheinbar schreibt er garnichts in List...

Wäre super wenn mir da noch jemand helfen könnte, das ist dann denke ich der letzte schritt.


Das ist di Funktion:
Delphi-Quellcode:
class procedure TDataWork.GetAllFilesInDirectorys(Directory: string; List: TStrings; ClearList: Boolean);
procedure ScanDir(const Directory: string);
var Mask : string;
var SR : TSearchRec;
begin
  Mask := '*.*';
  if FindFirst(Directory+Mask,faAnyFile and not faDirectory, SR) = 0 then
  begin
    try
      repeat
        List.Add(Directory+SR.Name+'#'+IntToStr(SR.FindData.nFileSizeHigh)+'*'
                 +IntToStr(SR.FindData.ftLastAccessTime.dwLowDateTime));
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
  if FindFirst(Directory+Mask,faAnyFile,SR) = 0 then
  begin
    try
      repeat
        if ((SR.Attr and faDirectory) = faDirectory) and (SR.Name <> '.') and (SR.Name <> '..') then
        begin
          ScanDir(Directory+SR.Name+'\');
        end;
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;
begin
  List.BeginUpdate;
  try
    if ClearList then
    begin
      List.Clear;
    end;
    if Directory = 'then
    begin
      Exit;
    end;
    if Directory[Length(Directory)] <> '\then
    begin
      Directory := Directory+'\';
    end;
    Directory := Directory+'\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;
So versuche ich sie Aufzurufen: (wie gesagt mit einer ListBox funktionierts)
Delphi-Quellcode:
var List : TStringList;
List := TStringList.Create;
TDataWork.GetAllFilesInDirectorys(Pfad,List,true);
Wie gesagt die Liste bleibt leer, egal was ich auch schon probiert hab.

Gruß
AnyKey
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 12:01
Hallo,

Zitat:
wie muss ich die Liste übergeben
Delphi-Quellcode:
var
  List: TStringList;
begin
  List:= TStringList.Create;

  try

    TDataWork.GetAllFilesInDirectorys(Pfad,List,true);

  finally
    List.Free;
  end;
end;
Oder was meintest du ?


Heiko
Heiko
  Mit Zitat antworten Zitat
AnyKey

Registriert seit: 15. Apr 2008
173 Beiträge
 
#20

Re: Rekursives durchsuchen und Letzten Dateizugriff auslesen

  Alt 16. Apr 2010, 12:04
Ja das meinte ich, aber in meiner Liste steht nichts drin
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 8     12 34     Letzte »    


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 12:58 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