taFileSync (im folgenden "APP" genannt) ist eine Applikation zum Synchronisieren von zwei Verzeichnisbäumen auf dem lokalen Dateisystem. Sie kann zum Beispiel zum Synchronisieren der Speicherkarte mit einem OTG (on-the-go) USB Stick verwendet werden oder zum Erstellen eines Backups der internen auf die externe Speicherkarte.

taFileSync

Was ist taFileSync?
Sync Jobs definieren
Vorschau der Differenzen
Verwendung aus anderen Anwendungen
Debugging
Rechtliches

1. Einleitung

taFileSync (im folgenden "APP" genannt) ist eine Applikation zum Synchronisieren von zwei Verzeichnisbäumen auf dem lokalen Dateisystem. Sie kann zum Beispiel zum Synchronisieren der Speicherkarte mit einem OTG (on-the-go) USB Stick verwendet werden oder zum Erstellen eines Backups der internen auf die externe Speicherkarte.

Die APP hat folgende Merkmale:

  • 1-Weg und 2-Weg Sync
  • unbegrenzte Anzahl von Sync Jobs
  • Vorschau der Differenzen
  • Unterstützung von Zeitverschiebungen
  • Vergleich von Textdateien nach Inhalt (benötigt die App taTextDiff)

Es gibt eine PRO Schlüssel App (taFileSync PRO), welche zusätzliche Funktionalität in dieser App hier aktiviert:

  • Verzeichnis Ausschluss-Liste: Die Verzeichnisse in der Liste werden beim Vergleich ausgelassen
  • Mehr als 1 Zeitdifferenz kann ignoriert werden.
  • Die Job-Option 'Log' schreibt eine Logdatei mit den ausgeführten Synchronisierungsoperationen
  • Jobs können automatisch ausgeführt werden (z.B. mittels Tasker)
  • Der SEND Intent erlaubt die Übergabe von 2 Verzeichnissen zur Erstellung des _temp Jobs (z.B. aus TotalCommander heraus)
  • Der VIEW Intent für *.json Dateien erlaubt die Übergabe von Daten an die APP.

top

2. Sync Jobs definieren

Die APP unterstützt eine unbegrenzte Anzahl von Sync Jobs. Die Jobs können nach Namen sortiert oder durch Ausschneiden und Einfügen individuell angeordnet werden. Die Job Liste ist gespeichert in der Datei /sdcard/Android/data/ch.tanapro.taFileSync/JobList.dat

Wenn Sie einen Sync Job definieren, müssen Sie angeben, ob Sie eine 1-Weg oder eine 2-Weg Synchronisierung möchten. Ein 1-Weg Sync ist ein Spiegelungsprozess, welcher den Baum 2 gleich macht wie den Baum 1. Er kopiert Dateien vom Baum 1 zum Baum 2, auch wenn die Dateien in Baum 2 neuer sind. Er löscht auch Dateien und Verzeichnisse, welche in Baum 2 nicht vorhanden sind.
Ein 2-Weg Sync kopiert neuere und fehlende Dateien von Baum 1 nach Baum 2 und auch von Baum 2 nach Baum 1.

Sie können eine Liste von Verzeichnissen definieren, die beim Vergleich der zwei Bäume ausgelassen werden (nur PRO).

Sie können eine Zeitdifferenz in Sekunden definieren. Wenn der Zeitstempel einer Datei in Baum 1 sich um genau diese Anzahl Sekunden vom Zeitstempel der Datei in Baum 2 unterscheidet, dann werden die Dateien als gleich alt angenommen. Dateien mit gleichem Zeitstempel werden immer als gleich alt angenommen, unabhängig von der definierten Zeitdifferenz. Mit installiertem PRO Schlüssel können Sie auch mehrere Zeitdifferenzen definieren, welche durch Leerschläge getrennt werden müssen. Wenn Sie mit Android 4.4.2 die interne und die externe Speicherkarte miteinander synchronisieren, dann sollten Sie die Zeitdifferenz von 1 Sekunde ignorieren.

Bei einigen Dateisystemen (z.B. interne Speicherkarte bei Jelly Bean) ist es nicht möglich, den Zeitstempel einer ins Zielverzeichnis kopierten Datei zu modifizieren. In diesem Fall bewirkt die Option 'Quell-Zeitstempel aktualisieren', dass stattdessen der Zeitstempel der Quellen-Datei modifiziert wird, um so die Synchronisierung zu ermöglichen.

Wenn Sie sowohl in Baum 1 als auch in Baum 2 den Zeitstempel von Dateien nicht setzen können, dann kann der Vergleich nur aufgrund des Inhalts erfolgen (ist leider langsam!). Setzen Sie hierzu die Optionen 'Vergleich nach Inhalt' und 'Ignoriere Datei Zeitstempel'.

top

3. Vorschau der Differenzen

Wenn ein Job gestartet wird, werden zuerst die Unterschiede zwischen den zwei Verzeichnisbäumen ermittelt und in einer Liste angezeigt. Die Liste zeigt, wie sich die Datei in Baum 2 von derjenigen in Baum 1 unterscheidet:

< die Datei in Baum 2 ist älter
- die Datei fehlt in Baum 2
> die Datei in Baum 2 ist neuer
+ die Datei fehlt in Baum 1
# die Dateien haben den gleichen Zeitstempel, aber eine unterschiedliche Grösse oder Inhalt

Bei 1-Weg Sync Jobs besteht bei den letzten 3 Fällen das Risiko Daten zu verlieren oder Daten zu überschreiben, welche in Baum 2 neuer gewesen waren. Deshalb werden diese Fälle in der Differenzenliste rot angezeigt.

Vom Vorschausschirm aus können Sie den Synchronisierungsprozess starten, indem Sie im Hauptmenü 'Synchronisieren' wählen. Nach einer Bestätigung werden die zwei Bäume synchronisiert. Der Prozess kann durch Drücken der Hardware Taste 'Zurück' abgebrochen werden.

Bei einem 2-Weg Sync werden Dateien des letzten Falles (#) nicht kopiert und verbleiben auch nach der Synchronisierung in der Differenzenliste.

top

4. Verwendung aus anderen Anwendungen (nur PRO)

Sie können diese APP aus anderen Apps wie TotalCommander oder Tasker nutzen. Um Daten an diese APP zu übermitteln, werden folgende JSON Objekte verwendet:

Für Auto-Sync:

{
  "stOperation": "opAutoSync", 
  "stUniqueID": "1408424060830"
}

wobei der Wert von stUniqueID die eindeutige ID des auszuführenden Jobs ist.

Für adhoc Verzeichnis-Vergleich:

{
  "stOperation": "opAdhocDiff", 
  "stDir1": "/sdcard/d1/", 
  "stDir2": "/sdcard/d2/"
}

Die JSON Objekte können auf folgenden Wegen übermittelt werden:

  • Data URI des MAIN Intent (z.B. mit Tasker):
    data:application/json,{"stOperation": "opAutoSync", "stUniqueID": "1408424060830"}
  • Data URI des SEND Intent (z.B. mit TotalCommander):
    url:data:application/json,{"stOperation": "opAdhocDiff", "stDir1": "%P", "stDir2": "%T"}
  • Data URI des VIEW Intent (mit beliebigem Dateimanager): Hierzu erstellen Sie eine Textdatei (mit Erweiterung .json) welche das JSON Object enthält. Dann tippen Sie die Datei im Dateimanager an oder wählen die APP im 'Öffnen mit...' Dialog. Dies schickt die Datei URL an die APP, welche die Daten von der Datei einliest.

Wenn ein opAutoSync Job beendet ist, wird folgende Meldung in die Zwischenablage gelegt:
taFileSync: opAutoSync done, job: uniqueID
Dies ermöglicht es anderen Apps wie Tasker auf das Ende des ersten taFileSync Jobs zu warten, bevor der nächste Job gestartet wird.

top

5. Debugging

Um Probleme der APP zu analysieren, können Sie in den Einstellungen den Log Level einstellen. Wenn ein höherer Wert als NONE (nichts) eingestellt ist, schreibt die APP diverse Informationen in die logcat. Am meisten Informationen werden mit dem Wert VERBOSE (geschwätzig) geschrieben. Sie können sich die logcat Informationen anzeigen lassen, indem Sie im Hauptmenü 'LogCat' anwählen. Es wird sowohl das Log der APP als auch das Android System Log angezeigt. Das Log kann gefiltert und in die Zwischenablage kopiert werden.

top

6. Rechtliches

Vielen Dank, dass Sie sich für diese SOFTWARE entschieden haben! Sie dürfen die SOFTWARE nur nutzen, wenn Sie mit den nachfolgenden Bestimmungen einverstanden sind:

URHEBERRECHT
Diese SOFTWARE wurde durch Tanapro GmbH (Tom Arn), www.tanapro.ch, (im folgenden AUTOR genannt) entwickelt. Alle Rechte vorbehalten.

KEINE GEWÄHRLEISTUNG
Die SOFTWARE wird im Ist-Zustand ausgeliefert. Der AUTOR lehnt jede Haftung ab, ob ausdrücklich oder gesetzlich, einschliesslich der Garantien der Handelbarkeit und der Eignung für einen bestimmten Zweck. Der AUTOR übernimmt keine Garantie dafür, dass die Software ausfallsicher oder fehlerfrei ist. Der Benutzer muss bei der Verwendung der SOFTWARE sämtliches Risiko übernehmen.

KEINE SCHADENHAFTUNG
Der AUTOR übernimmt keine Haftung für Schäden oder Folgeschäden, direkt oder indirekt, die aufgrund der Verwendung (oder der Unmöglichkeit der Verwendung) der SOFTWARE entstehen könnten, auch wenn der AUTOR über die Möglichkeit solcher Schäden in Kenntnis gesetzt worden ist.

top

Additional information