Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Windows 7 änderungsdatum (https://www.delphipraxis.net/157602-windows-7-aenderungsdatum.html)

WizoHulk 18. Jan 2011 10:06

AW: Windows 7 änderungsdatum
 
Archiv Attribut kenne ich nicht, noch nie von gehört.
Hast du nen Link wo das gut erklärt wird?

Soll das etwa das Häckchen sein, was man bei den Ordner einstellungen macht?

DeddyH 18. Jan 2011 10:08

AW: Windows 7 änderungsdatum
 
Delphi-Referenz durchsuchenTSearchRec, da dann die Beschreibung zum Attr-Feld

[edit] Das ist kein "Häkchen". Beschreibung auf Wikipedia [/edit]

WizoHulk 18. Jan 2011 11:34

AW: Windows 7 änderungsdatum
 
ich habe jetzt diesen Quellcode gefunden, haut auch soweit hin alles, was ich jetzt aber net
ich kann aber damit doch nicht überprüfen, ob was neues in den Ordner verändert wurde.

Oder doch?

jetzt bin ich verwirrt...
Delphi-Quellcode:
function TForm1.GetFileAttributes(const FileName: string): TFileAttributes;
var srec: TSearchRec;
begin
  result:=[];
  if FindFirst(FileName, faDirectory, srec) = 0 then begin
    try
      if (srec.Attr and faReadOnly)>0 then result:=result+[ReadOnly]; //Schreibgesch. Datei 1
      if (srec.Attr and faHidden)>0 then result:=result+[Hidden]; //Verborgene Datei
      if (srec.Attr and faSysFile)>0 then result:=result+[SysFile]; //Systemdatei
      if (srec.Attr and faVolumeId)>0 then result:=result+[VolumeId]; //Laufwerks-ID
      if (srec.Attr and faDirectory)>0 then result:=result+[Directory]; //Verzeichnis
      if (srec.Attr and faArchive)>0 then result:=result+[Archive]; //Archivdatei
      if (srec.Attr and faAnyFile)>0 then result:=result+[AnyFile]; //Beliebige Datei
    finally
      FindClose(srec);
    end;
  end;
end;




procedure TForm1.Button1Click(Sender: TObject);
var
   fa: TFileAttributes;
begin
  fa:=GetFileAttributes('C:\Dokumente und Einstellungen\benutzer\Desktop\Neuer Ordner');
  if Archive in fa then
    ShowMessage('Archiviert')
  else
    ShowMessage('Nicht Archiviert');
end;

Coder 18. Jan 2011 11:52

AW: Windows 7 änderungsdatum
 
mhh, ja ich weiß nicht...
also Du hast eine FESTGELEGTE LISTE von Ordnern (also, man kann einstellen, welche Ordner incl. Unterordnern "überwacht" werden sollen?).
Dann lies doch auch das Datum und die Zeit der zum letzten Sicherungspunkt existenten Unter-Ordner dazu aus und speichere das mit in einer kleinen Textdatei

C:\EigeneDateien\dämlicheFotos, 07.01.2011, 13:44
C:\EigeneDateien\peinlicheFotos, 07.01.2011, 16:23
C:\EigeneDateien\Delphiprogramme, 018.01.2011, 09:17

und bei den Dateien mußte das auch jeweils machen.
je Unterordner/pfad.

und dann bei jedem Start abgleichen.


mhh, wie? unter win7 wird das Änderungsdatum der Ordner nicht mehr aktualsiert, nachdem eine Datei darin erzeugt/gelöscht/kopiert,/Verändert (größe) wurde?

Anm.: die Zeit der nächst darüberligenden Ordner wird nicht verändert, wenn in einem Unterordner eine Datei verändert wird. Das ist auch unter XP schon so, soweit ich feststellen konnte.
Dagegen hilft nur scannen der Ordner auf Dateien und vergleich mit der o.g. Liste.

DeddyH 18. Jan 2011 12:09

AW: Windows 7 änderungsdatum
 
Man kann doch rekursiv das Verzeichnis durchlaufen und die enthaltenen Dateien daraufhin prüfen, ob das Archiv-Attribut gesetzt ist. Falls ja, Datei kopieren und Archiv-Attribut wieder entfernen.

WizoHulk 18. Jan 2011 13:12

AW: Windows 7 änderungsdatum
 
hmmmmm..
also ist das Archiv attribut nur für dateien und nicht für ordner.

eine schöne lösung ist das ja nicht jeden einzelnen

jobo 18. Jan 2011 13:15

AW: Windows 7 änderungsdatum
 
Wie wär es dennn ohne Programmierung mit Bordmitteln?
Code:
V:\>help xcopy
Kopiert Dateien und Verzeichnisstrukturen.

XCOPY Quelle [Ziel] [/A | /M] [/D[:Datum]] [/P] [/S [/E]] [/V] [/W]
                    [/C] [/I] [/Q] [/F] [/L] [/G] [/H] [/R] [/T] [/U]
                    [/K] [/N] [/O] [/X] [/Y] [/-Y] [/Z]
                    [/EXCLUDE:Datei1[+Datei2][+Datei3]...]

  Quelle   Die zu kopierenden Dateien.
  Ziel     Position und/oder Name der neuen Dateien.
[B] /A       Kopiert nur Dateien mit gesetztem Archivattribut,
            ändert das Attribut nicht.
  /M       Kopiert nur Dateien mit gesetztem Archivattribut,
            setzt das Attribut nach dem Kopieren zurück.[/B]
Oder gibt es das unter Windows 7 (home, ...) nicht mehr?

DeddyH 18. Jan 2011 13:17

AW: Windows 7 änderungsdatum
 
Wieso ist das keine schöne Lösung? Willst Du einen Ordner mit 100 GB kopieren, nur weil eine Datei mit 100 KB dazugekommen ist?

[edit] Unter Vista/Win7 gibt es Robocopy, das ist noch einen Tacken ausgefuchster. [/edit]

jobo 18. Jan 2011 13:34

AW: Windows 7 änderungsdatum
 
Robocopy kenne ich nicht, aber wenn ich WizoHulk richtig verstanden habe, reicht eine Zeile xcopy (oder mehrere, wenn es verschiedene Verzeichnisse sind)
Man muss sich ja nicht unnötig quälen. :roll:

WizoHulk 18. Jan 2011 13:40

AW: Windows 7 änderungsdatum
 
hmmm habe mir grad ma was zu hashwerten angeschaut, das scheint aber auch net die richtige lösung zu sein.

Ich habe in ELOOffice meine Dokumente die er kopieren soll, aber bei übern nen paar hunder dokumente ist das warscheinlich mühsam jeden einzelnen Order durchzukämmen und zu schaun ob dort was neues hinzugekommen ist.

Und bei meheren Verzeichnissen die er kopieren soll (z.b. D:\EloOffice, E:\Musik, F:\Bilder, ...)
Die zu kopierenden ordner wären Maximal 3 - 4 Gb groß.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 Uhr.
Seite 2 von 4     12 34      

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