0-byte Dateien zur Archivierung erzeugen

German support forum

Moderators: white, Hacker, Stefan2

Post Reply
logi
Junior Member
Junior Member
Posts: 2
Joined: 2007-01-23, 13:37 UTC

0-byte Dateien zur Archivierung erzeugen

Post by *logi »

Hallo zusammen,

ich suche schon länger eine Möglichkeit, Dateien aus einem Quellverzeichnis zu "kopieren", die Kopien werden aber im Zielverzeichnis als 0-Byte Dateien angelegt. Hiebei ist es wichtig, das diese 0-Byte Dateien aber den gleichen Timestamp haben wie die Quelldateien.

Hintergrund:
Ich erstelle sehr oft Verzeichnisse (CD001, CD002, ...) in denen ich Dateien sammle. Wenn das Verzeichnis ca. 700 MB hat, brenne ich diese auf CD und würde dann aus diesen Dateien von der Festplatte 0-Byte erstellen wollen. So kann ich das Verzeichnis mit den 0-Byte Dateien auf der Festplatte belassen und habe eine schnelle Möglichkeit, lokal in den Verzeichnisse zu suchen, auf welcher CD sich welche Datei befindet. Da es namensgleiche Dateien mehrfach geben kann, aber in verschiedenen Verionsständen, ist es wichtig das die 0-Byte Dateien das gleiche Datum wie die Dateien auf der CD haben.

Da ich (fast) alles mit dem Totalcommander mache, wäre es natürlich Klasse, wenn ich sowas auch direkt mit dem Totalcommander ausführen könnte.

Hat jemand eine Idee wie sich sowas umsetzen läßt?

mit freundlichen Grüßen

logi
User avatar
sqa_wizard
Power Member
Power Member
Posts: 3864
Joined: 2003-02-06, 11:41 UTC
Location: Germany

Post by *sqa_wizard »

Hat jemand eine Idee wie sich sowas umsetzen läßt?
Mit 0-Byte Dateien ? Nein.

Aber warum so umständlich ?

Versuch es mit dem DiskDir Plugin

Damit erstellst du eine Liste der Dateien (incl. Grösse und Datum) die du mit dem TC wie eine Dateistruktur ansehen, sortieren und sogar im Verzeichnis-Synchronisier-Tool mit realen Verzeichnissen vergleichen kannst.
(Natürlich nicht nach Inhalt aber ansonsten wohl)
#5767 Personal license
logi
Junior Member
Junior Member
Posts: 2
Joined: 2007-01-23, 13:37 UTC

Post by *logi »

@sqa_wizard
Danke für den Tip mit dem DiskDir Plugin. Hilft mir aber leider nur bedingt.

Ich hatte aber in meinem Eingangsposting noch nicht alle Anwendungsfälle für 0-Byte Dateien aufgezählt.

Ich verwende 0-Byte Dateien auch für den Abgleich mit einem FTP Server. Ich verwende für den FTP-Download FileZilla mit der Option, das lokal bereits vorhandene Dateien nur überschrieben werden, wenn die auf dem FTP Server neuer sind. Die Dateien werden nach dem Download dann auf CD/DVD archiviert und durch 0-Byte Dateien mit dem gleichen Datum der "richtigen" Dateien ersetzt. FileZilla wird dann also die Datei solange nicht mehr runterladen, wie die Daten auf dem FTP Server nicht neuer sind.
User avatar
Dalai
Power Member
Power Member
Posts: 9409
Joined: 2005-01-28, 22:17 UTC
Location: Meiningen (Südthüringen)

Post by *Dalai »

Solche Dateien mit 0 Byte Größe lassen sich mit diesem Befehl erzeugen

Code: Select all

copy nul <zieldatei>
Problem dabei: als Datum wird natürlich das aktuelle benutzt und ich weiß bisher noch keine Lösung, wie man das Datum der Quelldatei auf die 0-Byte-Datei anwenden könnte. Geht das evtl mit dem Linux-Tool touch?

Das ist vielleicht eine Möglichkeit, auf der man aufbauen kann.

MfG Dalai
#101164 Personal licence
Ryzen 5 2600, 16 GiB RAM, ASUS Prime X370-A, Win7 x64

Plugins: Services2, Startups, CertificateInfo, SignatureInfo, LineBreakInfo - Download-Mirror
User avatar
Hacker
Moderator
Moderator
Posts: 13073
Joined: 2003-02-06, 14:56 UTC
Location: Bratislava, Slovakia

Post by *Hacker »

logi,
Hier ist ein kurzes AutoHotkey Skript als Losung:

Code: Select all

SetWorkingDir, %1%
Loop, *.*, 2, 1
{
	FileCreateDir, %2%%A_LoopFileFullPath%
	IfNotEqual, ErrorLevel, 0
		MsgBox, Error creating dir "%2%%A_LoopFileFullPath%".
}

Loop, *.*, 0, 1
{
	FileAppend, , %2%%A_LoopFileFullPath%
	IfNotEqual, ErrorLevel, 0
		MsgBox, Error creating file "%2%%A_LoopFileFullPath%".

	FileGetTime, Time
	FileSetTime, %Time%, %2%%A_LoopFileFullPath%
	IfNotEqual, ErrorLevel, 0
		MsgBox, Error setting the modified timestamp on "%2%%A_LoopFileFullPath%".

	FileGetTime, Time, , C
	FileSetTime, %Time%, %2%%A_LoopFileFullPath%, C
	IfNotEqual, ErrorLevel, 0
		MsgBox, Error setting the created timestamp on "%2%%A_LoopFileFullPath%".

	FileGetTime, Time, , A
	FileSetTime, %Time%, %2%%A_LoopFileFullPath%, A
	IfNotEqual, ErrorLevel, 0
		MsgBox, Error setting the accessed timestamp on "%2%%A_LoopFileFullPath%".
}

Aufrufen kann man es aus der Button Bar oder dem Menu, die Parameter mussen dann so aussehen:

Code: Select all

"%P\" "%T\"
HTH
Roman
Mal angenommen, du drückst Strg+F, wählst die FTP-Verbindung (mit gespeichertem Passwort), klickst aber nicht auf Verbinden, sondern fällst tot um.
Post Reply