Hallo,
ich bin ziemlicher AutoIt- und Programmieranfänger. Bisher habe ich AutoIt vor allem für automatisierte Installationsscripte verwendet. Und auch das ist schon eine Weile her. Nun möchte ich mir ein kleines Programm schreiben, dass mich bei der Verwaltung von Bilddateien unterstützt. Gegeben ist ein Ordner mit jpg- und raw-Dateien. Diese haben den gleichen Namen, unterscheiden sich aber durch die Dateiendung. (So kommt das aus meiner Kamera.) In meinem Fotoworkflow durchforste ich die jpg-Dateien und lösche die, die ich nicht gebrauchen kann. In dem Ordner befinden sich dann aber noch die zugehörigen raw-Dateien. Das Programm soll diese "verwaisten" -raw-Dateien finden und löschen.
Dies ist erstmal die Grundidee. Ich habe den unten aufgeführten Ansatz gewählt und möchte hier einfach einmal nachfragen, ob dieses Vorgehen Sinn macht oder ob ich das Ganze auch ganz anders angehen könnte oder sollte. Für Tipps wäre ich dankbar. Das "Programm" soll noch ausgebaut werden. So möchte ich z.B. mehrere Raw-Dateiformate berücksichtigen können (verschiedene Dateiendungen) oder auch verschiedene Quellordner. Am Ende hätte ich auch gern ein GUI. Bis dahin ist es für mich sicher noch ein weiter Weg und ich habe noch keine Idee, wie das gehen kann. Für mich ist dieses kleine Projekt eine Art Gehirntraining und ich versuche es einfach aus Spaß und Interesse an der Sache. Deshalb greife ich auch nicht auf Programme zurück, die ich im Netz gefunden habe und genau das tun, was ich möchte.
Also - ich freue mich über HInweise und hier mein erster Ansatz
#include <Array.au3>
#include <File.au3>
#include <MsgBoxConstants.au3>
$QuellOrdner = @DesktopDir & "\JgpRawTest\"
; Alle Raw-Dateien in Array einlesen.
$aFileList = _FileListToArray($QuellOrdner, "*.raw", 1)
; Nacheinander Dateinamen im Array auslesen.
For $i = 1 To UBound($aFileList)-1
$Datei = $aFileList[$i]
; Dateierweiterung (raw) entfernen.
$DateinameOhneErw = StringTrimRight ( $Datei, 4 )
; MsgBox(1,"Info1",$DateinameOhneErw)
; Prüfen, ob eine gleichnamige Datei mit der Endung jpg. vorhanden ist.
$DateiVorhandenJpg = FileExists ($QuellOrdner & $DateinameOhneErw & ".jpg")
; MsgBox(1,"Info2",$DateiVorhanden)
; Raw-Datei löschen, falls keine jpg-Datei vorhanden ist.
If $DateiVorhandenJpg = 0 Then FileDelete ($QuellOrdner & $DateinameOhneErw & ".raw")
Next
Alles anzeigen