'n Tag allerseits
Ich versuche gerade meine Fotos automatisch nach datum sortieren zu
lassen. Im Grunde möchte ich die Fotos vom Ordner C:\Fotos in den Ordner
C:\Fotos_sortiert\Aufnahmemonat+Jahr_des_Fotos verschieben. Dabei
möchte ich die EXIF Dateien der Fotos auslesen und je nach Aufnahmemonat
sollten diese Bilder dann in den jeweiligen Unterordner, sofern
vorhanden, verschoben werden. Für den Fall, dass der Ordner nicht
vorhanden ist, sollte ein neuer Ordner erstellt werden. Nun kenne ich
mich aber nicht allzu gut mit dem auslesen von Dateien usw. aus und
bräuchte hierbei etwas Hilfe.
mfg Michael
Michael schrieb:> Im Grunde möchte ich die Fotos vom Ordner C:\Fotos in den Ordner> C:\Fotos_sortiert\Aufnahmemonat+Jahr_des_Fotos verschieben.
So sind die Ordnernamen für sortiertes Anzeigen ausgesprochen
ungeeignet, wenn die Reihenfolge sich nicht primär nach dem Monat und
erst sekundär nach dem Jahr orientieren soll.
Michael schrieb:> Nun kenne ich mich aber nicht allzu gut mit dem auslesen von Dateien usw.> aus und bräuchte hierbei etwas Hilfe.
Bevor du jetzt alles aufzählst, was du nicht kannst, sag doch erstmal,
was du kannst, z.B. welche Programmiersprache du beherrscht, um dein
Ansinnen evtl. umzusetzen oder warum du nicht fertige Lösungen, wie die
ExifTools von Phil Harvey einsetzen möchtest.
http://owl.phy.queensu.ca/~phil/exiftool/
Also tut mir leid dass ich mich etwas unklar ausgedrückt habe:
Also ich hatte letztes Jahr als Schulfach (Technische Fachschule)
Programmieren. Als Programmiersprache kam bei uns nur C# (Konsolen- und
Forms Anwendungen)zum einsatz. Bisher habe ich Stoppuhren,
Taschenrechner, Einheiten- und Währungsrechner und einen kleinen Editor
programmiert. meistens bin ich aber nicht über die Programmierumgebung
(MS Visual Studio 2010 Express) hinausgekommen.
mfg Michael
Das ist wohl eine Nummer umfangreicher, als die bisherigen Programme.
Wird wohl ein paar Wochen dauern, aber da muss man sich durchbeissen.
In einem guten C# Buch sollte alles nötige beschrieben sein, und für
Dateibehandlungs-Bibliotheken hilft auch die MS-Online Dokumentation
weiter.
Also die benötigte Aufgabe in kleine Teile zerlegen, und die
nacheinander implementieren.
Step one -> Wie liest man eine Datei ein
Step two -> Wie bekomme ich die Dateiinfos
Step three -> Wie speichere ich eine Datei wieder ab (dabei Das Datum an
Dateinamen anhängen)
Mit einer Schleife den Ordnerinhalt abarbeiten, und fertig.
Schau dir die drei Sachen an, dann solltest du das mit deinem
Wissensstand schon schaffen.
Brauchst du das Programm, möchtest du das unbedingt schreiben? Oder bist
du nur an einer Lösung deines Sortierproblems interessiert? Als
Windows-User kann man das nicht wissen, ...
...aber unter anderen Betriebssystemen kann man dieses Problem mit einer
Kommandozeile lösen. Du brauchst nur ein Exif-Tool, um das Datum aus der
Datei zu extrahieren, und dann "mmv" oder etwas ähnliches, um die
Dateien in die Ordner zu verschieben.
Gerhard schrieb:> ...aber unter anderen Betriebssystemen kann man dieses Problem mit einer> Kommandozeile lösen
unter welchen BS gibt es denn keine Kommandozeile wo man das Problem
nicht lösen könnte? Oder meinst du nur weil du es unter Windows nicht
kannst, das es damit nicht geht?
Die Windows-Kommandozeile kannst du nicht mit einer vernünftigen Shell
vergleichen. Du wirst auch sehr sehr selten solche Tools finden, die
nativ für die Windows-Kommandozeile entwickelt wurden. Die Zielgruppe
ist einfach zu klein.
Klar kannst du mmv und die exiftools auch unter Windows zum Laufen
bringen. Dazu sage ich aber nur : "Der Weg zu Jesus führt durch Hingabe
und Leiden".
Dem Fragesteller empfehle ich das Booten von einer Linux-Live-CD, um von
dort aus das Windows-Laufwerk zu sortieren und in Ordnung zu bringen.
Gerhard schrieb:> Die Windows-Kommandozeile kannst du nicht mit einer vernünftigen Shell> vergleichen.
unter Windows gibt es Windows Scripting Host, nur weil es eventuell
anders ist, kann es vermutlich genauso viel wie eine Linux-Shell.
Peter II schrieb:> unter Windows gibt es Windows Scripting Host, nur weil es eventuell> anders ist, kann es vermutlich genauso viel wie eine Linux-Shell.
Und ist sogar noch angenehmer zu bedienen, da es objektorientiert
aufgebaut ist...
Gerhard schrieb:> Brauchst du das Programm, möchtest du das unbedingt schreiben? Oder bist> du nur an einer Lösung deines Sortierproblems interessiert? Als> Windows-User kann man das nicht wissen, ...>> ...aber unter anderen Betriebssystemen kann man dieses Problem mit einer> Kommandozeile lösen. Du brauchst nur ein Exif-Tool, um das Datum aus der> Datei zu extrahieren, und dann "mmv" oder etwas ähnliches, um die> Dateien in die Ordner zu verschieben.
Das meiste davon sollte auch noch unter cmd gehen. Früher hatte man
dafür einfache Batch Dateien geschrieben.
Gerhard schrieb:> Brauchst du das Programm, möchtest du das unbedingt schreiben?
ja ich möchte es unbedingt selbst schreiben. Es gibt zwar haufenweise
Programme im Internet, die mir diese Arbeit abnehmen können - aber wo
bleibt da der Spaß? Außerdem möchte ich mich mal wieder in C#
einarbeiten.
Robert L. schrieb:> soll er sich jetzt Linux antun, nur um ein paar Files zu sortieren ;-)
mit Linux habe ich an sich keine Probleme aber das Programm sollte ja
die Fotos auf der Festplatte meines Windows Rechners sortieren. Außerdem
ist für mich C# wesentlich einfacher.
(gibt zwar C# auch für linux, aber egal...)
Wieviel vom Rad willst denn neu erfinden?
entweder suchst mal nach infos wie/wo die Exif-Infos stehen (zumindest
mal das Datum)
oder eine library die die exif infos auslesen kann..
der Rest ist ja, naja, 0815 Grundlagen...
dateien suche, verzeichnisse anlegen, verschieben/umbenennen
Robert L. schrieb:> (gibt zwar C# auch für linux, aber egal...)
Was nützt ihm denn ein C# für Linux? Denn:
Michael schrieb:> ... aber das Programm sollte ja> die Fotos auf der Festplatte meines Windows Rechners sortieren.
dass es für den TO nicht Sinnvoll ist, hab ich ja selber weiter oben
geschrieben,
die Antwort bezog sich nur auf diesen Satz:
>Außerdem>ist für mich C# wesentlich einfacher.
der impliziert, dass der TO glaubt, wer könne auf Linux nicht mit C#
arbeiten..