Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Shfileoperation vor jedem Kopiervorgang einer Datei ein fall abfragen (https://www.delphipraxis.net/191401-shfileoperation-vor-jedem-kopiervorgang-einer-datei-ein-fall-abfragen.html)

timmbo 11. Jan 2017 14:03

AW: Shfileoperation vor jedem Kopiervorgang einer Datei ein fall abfragen
 
Danke.
Zitat:

Wie ich's mir dachte ... Fehler sollten bei deinem geposteten Code nicht einfach verschwinden.
Sorry habs falsch erklärt. Ich meinte das der Fehler zwar kommt aber dann weitergemacht wird. Somit wird die Datei übersprungen und somit nicht kopiert.

Hauptsächlich ging es um das zweite problem das bei jedem Kopiervorgang einer Datei noch eine Abfrage gemacht werden kann.Ich habe gehofft das es dafür schon etwas geben würde. Komme also nicht daran vorbei eine eigene Funktion zu erstellen und jede Datei einzeln zu Kopieren. Dann kann ich so viele Abfragen machen wie ich will. Danke Für die hilfe:thumb:

himitsu 11. Jan 2017 14:06

AW: Shfileoperation vor jedem Kopiervorgang einer Datei ein fall abfragen
 
Zitat:

Zitat von DeddyH (Beitrag 1358673)
Mit irgendwelchen Zeitstempeln herumzuhantieren ist da wesentlich fehleranfälliger.

Delphi nimmt die Local-LastWriteTime zur Prüfung, ob geöffnete Dateien extern verändert wurden.
Immer zur Zeitumstellung (Sommer-/Winterzeit) meckert Delphi dann plötzlich rum, dass alle Dateien angeblich geändert wurden. :stupid:

nahpets 11. Jan 2017 14:20

AW: Shfileoperation vor jedem Kopiervorgang einer Datei ein fall abfragen
 
@a.def

Das kannst Du halten wie Du willst, aber ich halte das nicht für ein sinnvolles vorgehen.

Nach Deinen Vorstellungen dürftest Du dann jedenfalls keine professionelle Datensicherungssoftware nutzen.

Abgesehen davon hat das Archiv-Bit nichts, aber auch garnichts mit irgendeiner Eingabe vom Benutzer zu tuen. Es ist eine Funktionalität des Betriebsystemes.

Falls Du deren korrekte Nutzung anzweifelst, solltest Du Dich auch nicht auf den Zeitstempel verlassen, der wird auch vom Betriebssystem bei 'ner Änderung gesetzt.

Mir erschließt sich nicht, was das mit dem Benutzer und seinen Eingaben zu tuen haben soll und warum man sich auf den vom Betriebssystem gesetzten Zeitstempel verlassen kann, aber nicht auf das zum gleichen Zeitpunkt vom Betriebssystem gesetzte Attribut zur Kennzeichnung einer Änderung.

Das Archiv-Bit wird doch gerade deshalb vom Betriebssystem gesetzt, damit man Änderungen an Dateien erkennen kann, ohne einen (wie auch immer gearteten) Vorher-/Nachhervergleich machen zu müssen.

Den Zeitstempel kann man einsetzem, wenn man alle Dateien sichern will, die neuer als ein zu wählender Zeitpunkt sind.

Das heißt aber nicht, dass man damit alle seit der letzten Sicherung geänderten Dateien sichert, sondern dass man alle neueren Dateien sichert.
Da mag es dann eine Schnittmenge geben, aber man hat nicht sicher alle geänderten Dateien, sondern nur die nach dem Zeitpunkt geänderten oder neuerstellten Dateien.

Nutzt man das Archiv-Bit, so muss man den Zeitpunkt der letzten Sicherung nicht wissen.
Alles mit gesetztem Archiv-Bit wurde geändert bzw. neu erstellt und ist damit zu sichern.
Selbst bei einer massiven Umstellung von Systemzeit und Datum funktioniert die Sicherung unter Zuhilfenahme des Archiv-Bits noch verlässlich.

Siehe hierzu himitsu Anmerkung.

Oder nimm Deinen Laptop mal mit auf Reise und ändere die Zeitzone entsprechend den örtlichen Gegebenheiten. Und, je nach West- oder Ostreiserichtung, hast Du dann auf einmal eine Zeitlücke, die entweder zu doppelter oder zu fehlender Sicherung von Dateien führen kann.
(Die, abhängig von der Reisegeschwindigkeit, größer oder kleiner sein kann - siehe "In 80 Tagen um die Welt" von Jules Verne ;-))

Mit dem Archiv-Bit ist das schnurz, das funktioniert weiterhin.

a.def 12. Jan 2017 16:59

AW: Shfileoperation vor jedem Kopiervorgang einer Datei ein fall abfragen
 
Ich habe gestern mal ein bisschen mit dem Archivbit und CopyFileEx usw rumprobiert.
Muss man das Bit selber entfernen? Denn in meinen Tests hat weder CopyFileEx noch die SHFileOperations das Bit entfernt.

Luckie 12. Jan 2017 17:31

AW: Shfileoperation vor jedem Kopiervorgang einer Datei ein fall abfragen
 
Ja, muss man. Nur das Konsolenprogramm xcopy setzt das Archivbit zurück, wenn gewünscht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:36 Uhr.
Seite 2 von 2     12   

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