'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.
Es gibt da schon ein Programm nennt sich Exifsorter ich finde es super. Ich glaube das ist was Du suchst: http://www.amok.am/index.php?page=progr&id=9
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.
wasn hier los.. soll er sich jetzt Linux antun, nur um ein paar Files zu sortieren ;-) http://www.sno.phy.queensu.ca/~phil/exiftool/ da gibt's auch ein Windows Executable http://www.sno.phy.queensu.ca/~phil/exiftool/#filename
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..
mal was zum Thema :-) Hiermit alle Dateien suchen: http://msdn.microsoft.com/de-de/library/system.io.directory.getfiles.aspx Die Ergebnisse kommen in eine Liste. Dann in einer Schleife für jedes Bild ein Image-Objekt erstellen
1 | Image bildname = new Bitmap(dateiname); |
und für EXIF ein PropertyItem anlegen:
1 | PropertyItem[] eigenschaften = bildname.PropertyItems; |
(http://msdn.microsoft.com/de-de/library/system.drawing.image.propertyitems.aspx) In den Property-Items suchst du dann den Tag mit
1 | .ID = 0x0132 |
(DateTime-Tag) - dann erhältst du den String mit Datu und Zeit. So hab ich es zumindest umgesetzt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.