Seite 1 von 2

Das Ordnerdatum manuel aendern

Verfasst: 27.03.2012 22:45
von HemSA
Hallole an Alle,
ich habe mir einen neuen Laptop zugelegt und bin am Übertragen von den Dateien vom alten PC.

Nun habe ich ein Problem. Ich habe vom altem PC die ganzen Fotos mit den jeweiligen Ordner übertragen. Doch das Ordnerdatum ist das Datum des Übertragens. So habe ich nun alle Ordner mit dem gleichem Datum, was natürlich mit der Foto-SW auch alles im gleichen, sprich einem Monat angezeigt wird. Dies will ich natürlich nicht.

Gibt es eine elegante Möglichkeit, ohne jedesmal das Datum vom Laptop zu aendern, den Files ein neues Erstellungsdatum zu verpassen (es sind ca. 400 Dateien, also machbar, aber natürlich nicht sehr angenehm :-( )?

Das was ich im Internet bis jetzt gefunden habe klappte nicht, und ich will den neuen Laptop nicht schon am Anfang mit unnötiger nicht funktionierender Software vollnuddeln.

Hat jemand ein Tip von einer funktionierenden SW oder einem anderem Weg, wie man das machen kann, ohne wie gesagt jedesmal das Datum zu aendern?

Danke schon mal im Vorraus.
Michael

Edit: Habe Windows 7

Re: Das Dateidatum manuel aendern

Verfasst: 27.03.2012 22:49
von RSBasic
Soweit ich weiß kannst du beim TotalCommander das Verzeichnis (in dem deine Fotos vorhanden sind) kopieren und einstellen, dass sich die Datumsangaben nicht ändern.

Re: Das Dateidatum manuel aendern

Verfasst: 27.03.2012 22:59
von HemSA
Hallole RSBasic,
das werde ich dann morgen mal probieren.

Danke schon mal für den Tip.

Re: Das Dateidatum manuel aendern

Verfasst: 27.03.2012 23:41
von Nino
Mit dem Total Commander ist das Beibehalten der Zeit im Prinzip kein Problem.
Nur wenn Dateien bzw. Verzeichnisse von einem NTFS- auf ein FAT-Laufwerk kopiert werden, ändern sich die Zeitstempel mit einer ungeraden Sekundenzahl, weil FAT immer auf gerade Sekunden rundet. Da kann selbst der TC nichts gegen machen. :-) Das sollte in diesem Anwendungsfall allerdings keine Rolle spielen.

Grüße, Nino

Re: Das Dateidatum manuel aendern

Verfasst: 28.03.2012 00:06
von BSP
Hallo HemSA.
Schon klar;
Eigentlich möchtest Du, das dass alte Datum erhalten bleibt.

Aber ich gehe hier mal frech auf Deine Frage und Deine Überschrift ein:
Gibt es eine elegante Möglichkeit, ohne jedesmal das Datum vom Laptop zu aendern, den Files ein neues Erstellungsdatum zu verpassen
Ja, gibt es: (Zumindest bei PB 4.60)

Code: Alles auswählen

SetFileDate("c:\test.txt",#PB_Date_Created,ParseDate("%dd.%mm.%yyyy:%hh.%ii","26.03.2012:23.15"))
Gruß: Bernd

Re: Das Dateidatum manuel aendern

Verfasst: 28.03.2012 21:59
von HemSA
Hmm, Hallo Bernd,
irgendwie klappt das nicht bei mir. Das Datum bleibt das Gleiche, es aendert sich nicht.

Deine Version waere die Beste, weil das Fotoprogram der Datei das Erstellungsdatum gleichzeitig als Ordnername vergibt ( ohne Sekunden eben ).

Ich würde dann den Dateinamen auslesen und dies dann auch als Erstellungsdatum + eine fixe Zeitangabe verwenden.

Verwende: PureBasic 4.60 (Windows - x64)

Re: Das Dateidatum manuel aendern

Verfasst: 28.03.2012 22:18
von BSP
Hallo HemSA.
Ich experimentiere da gerade ein wenig herum.
Mit den Änderungen bei Dateien funktioniert das schon ganz gut.
Mit den Ordnern habe ich aber noch probleme.

Hier mal zum Testen.
Aber erst anschauen, DANN das Kommentarzeichen vor:
SetFileDate(...
zum "scharfmachen" entfernen.
So ist das Programm erst mal ungefährlich, zum ausprobieren.
Gruß: Bernd

Code: Alles auswählen

#HWnd = 1

Enumeration
#Datgadg
#ChBGadg
#DatButt
#LosButt
#EndButt
#TxtGadg1
#TxtGadg2
#combogadg
EndEnumeration
Global datum$ = FormatDate("%dd.%mm.%yyyy",Date())
Global flag = #PB_Date_Created

Procedure AendereDatum(Pfad$)
  
  ok = ExamineDirectory(#PB_Any, pfad$, "*.*") 
  If ok 
    While NextDirectoryEntry(ok)
      zeit$=datum$+":"+FormatDate("%hh.%ii",Date())
      If DirectoryEntryType(ok) = #PB_DirectoryEntry_File
        file$=pfad$+DirectoryEntryName(ok)
        Debug file$
        ;SetFileDate(file$,flag,ParseDate("%dd.%mm.%yyyy:%hh.%ii",zeit$))
      Else
        If Not (DirectoryEntryName(ok)="." Or DirectoryEntryName(ok)="..")
          ;SetFileDate(pfad$,flag,0);ParseDate("%dd.%mm.%yyyy:%hh.%ii",zeit$))
          file$=pfad$+DirectoryEntryName(ok)+"\"
          ;Debug file$
          If GetGadgetState(#ChBGadg)
            AendereDatum(file$)
          EndIf
        EndIf
      EndIf
    Wend
    FinishDirectory(ok)
  EndIf

EndProcedure

; --- Window
OpenWindow(#HWnd , 0,0,300,200,"Dateidatum einstellen",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)

TextGadget(#TxtGadg1,4,4,292,22,"Datum einstellen !")
DateGadget(#Datgadg,4,30,80,22,"%dd.%mm.%yyyy",Date())
ComboBoxGadget(#combogadg,100,30,120,22)
AddGadgetItem(#combogadg,0,"Erstellungsdatum")
AddGadgetItem(#combogadg,1,"Letzter Zugriff")
AddGadgetItem(#combogadg,2,"Letzte Änderung")
SetGadgetState(#combogadg,0)
ButtonGadget(#DatButt,4,60,80,30,"Ordner")
CheckBoxGadget(#ChBGadg,100,62,200,22,"Unterordner einbeziehen")
TextGadget(#TxtGadg2,4,96,292,22,"",#PB_Text_Border|#PB_Text_Right)
ButtonGadget(#LosButt,4,140,60,30,"Los")
ButtonGadget(#EndButt,216,140,80,30,"Ende")

pfad$=GetCurrentDirectory()

; --- Hauptschleife
Repeat
  Select WaitWindowEvent()
  Case #PB_Event_CloseWindow
    ende=1
    
  Case #PB_Event_Gadget
    Select EventGadget()
    Case #EndButt
      ende=1
      
    Case #DatButt
      pfad$=PathRequester("Ordner wählen",pfad$)
      SetGadgetText(#TxtGadg2,pfad$)
    
    Case #LosButt
      AendereDatum(pfad$)
      
    Case #Datgadg
      datum$=GetGadgetText(#Datgadg)
      ;Debug datum$
      
    Case #combogadg
      Select GetGadgetState(#combogadg)
      Case 0 : flag = #PB_Date_Created
      Case 1 : flag = #PB_Date_Accessed
      Case 2 : flag = #PB_Date_Modified
      EndSelect
      ;Debug flag
      
    EndSelect
  EndSelect
Until ende
End

Re: Das Dateidatum manuel aendern

Verfasst: 28.03.2012 22:27
von ts-soft
HemSA hat geschrieben:Das Datum bleibt das Gleiche, es aendert sich nicht.
Doch, das Erstellungsdatum ändert sich, aber dies ist nicht das Datum, welches Dein
Dateimanager anzeigt. Der zeigt Last_Modified an :wink:

Re: Das Dateidatum manuel aendern

Verfasst: 28.03.2012 22:35
von HemSA
Hallo ts-soft,
nein so ist es bei mir nicht. Ich kann mir das Aenderungsdatum sowie das Erstellungsdatum ( muss eben nachtraeglich hinzugefügt werden ) in Explorer anzeigen lassen.
Sind beide das Gleiche.

Michael

Re: Das Dateidatum manuel aendern

Verfasst: 28.03.2012 22:46
von HemSA
Hallo Bernd,
nein das hat auch nicht hingehauen, werde das dann morgen mal genauer ansehen ( hatte zum Test eine Testdatei verwendet ).

Tschüssle und Danke schon mal.
Michael