Datum aus Dateien auslesen
-
Hallo zusammen
Ich habe im Verzeichniss "C:\Test" Zwei Fotos welche folgende Aufnahmedatumen haben:
1. 19.02.2012
2. 25.03.2012wie kann ich mit einem Quellcode die beiden Aufnahmedaten herauslesen und der entsprechenden Foto als neuer Name zuweisen so zu sagen unbenennen?
Besten Dank fü eure Hilfe
-
Hallo Porsche2012,
Willkommen im C++-Forum.
Aus Deiner Frage geht nicht hervor, in welcher Art von Datei sich das Aufnahmedatum befindet. Ist es eine .jpg, .png oder .gif oder steht das Datum in einer Textdatei getrennt von den Bildern?
Gleich vorne weg: Falls sich das Datum in einer Bild-Datei befindet, dann wäre der Quellcode nichts für Anfänger.Gruß
Werner
-
Hallo
Ja, beim Bild handelt es sich um ein .jpg
Ich habe bereits Erfahrung mit C++ und kann mich nicht mehr als Anfänger deklarieren.Gruss Porsche2012
-
Wenn du kein Anfänger bist, solltest du selbst drauf kommen was nötig ist.
Du musst offensichtlich einen Weg finden die Metainformationen der Datei auszulesen. Das geht auf unterster Ebene mit Betriebssystemspezifischen Funktionen oder mit einer Library (z.B boost.filesystem). Dort kannst du dann die Erzeugungsdaten und allenfalls Aufnahmedaten auslesen und dann die Datei umbenennen.
-
Scahu dir das Bild mal mit dem Hex-Editor an. Das Datum ist dort eingebettet (zumindest bei den Bildern, die ich getestet habe.)
Außerdem das: http://www.sentex.net/~mwandel/jhead/
Ist Open-Source. (Aber C).
Ist der Exif Standard.
-
-
std::cout << dateiname;
-
Porsche2012 schrieb:
Sorry, Hallo
Wie würde der Code aussehen, wenn ich der Dateiname im DOS-Fenster herausgeben möchte?
Gruss Porsche2012
Du willst uns wohl verarschen, was?

-
Hallo
Ich habe im Verzeichnis C:\Test eine bestimmte Anzahl von Dateien nun möchte der Dateiname dieser Dateien einzel in ein String laden und anschliessend am Monitor heraus geben. Wie ist dies möglich
Deutsch ist eben nicht meine Muttersprache
-
Porsche2012 schrieb:
Ich habe im Verzeichnis C:\Test eine bestimmte Anzahl von Dateien nun möchte der Dateiname dieser Dateien einzel in ein String laden und anschliessend am Monitor heraus geben.
#include <iostream> #include "boost/filesystem.hpp" int main() { using namespace boost::filesystem3; using namespace std; const path p = "some_directory"; for(directory_iterator it(p); it!=directory_iterator(); ++it) { const path p = it->path(); const string filename = p.filename().string(); if( !is_directory(filename) ) cout << filename << '\n'; } }Of course you need to install
boostfirst.
-
http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx
http://msdn.microsoft.com/en-us/library/aa364428(v=vs.85).aspx
Probiers mit denen.http://msdn.microsoft.com/en-us/library/aa365200(v=vs.85).aspx
Hier gibts sogar ein Beispiel.Brauchst du keine große Lib dazu.
-
Hallo, Danke
geht dies auch ohne boost?
-
-
-
Porsche2012 schrieb:
Hallo, Danke
geht dies auch ohne boost?
Das ist einen Post weiter oben erklärt.