Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo!

Das ist mein erster Beitrag und ich bin auch noch kein Java-Profi.

Ich habe ein paar Bild-Dateien auf meiner Festplatte und wollte gerne das Datum wissen, wann sie erstellt wurden.

Nun habe ich schon im Internet gesucht, aber um das mit Java zu machen habe ich nichts gefunden. Nur mit PHP, Javascript oder C und C++, aber das brauche ich nicht.

Mein Programm weiß schon wo es selbst ist und wo die Bilder sind. Es kann die Bilder auch nehmen und zu einem Server schicken. Aber ich bräuchte noch das Erstellungsdatum der Bilder, damit sie nicht doppelt und dreifach auf dem Server liegen.

Das ist meine Frage::confused:

Wie kann man aus einer Datei das Erstellungsdatum auslesen?

Scheherasade

Geschrieben

Servus,

java.io.File bietet Dir nur die Information der letzten Änderung, vielleicht hilft Dir das was: java.io.File.lastModified()

Das Erstellungsdatum wirst Du in meinen Augen mit Java-Boardmitteln nicht hinbekommen. Schau mal bei Apache in den diversen Commons-Bibliotheken, vielleicht bieten die sowas plattformabhängig an. Oder Du gehst über Runtime.exec() für jede Plattform speziell mit OS-Boardmitteln dran.

Peter

Geschrieben

Wenn ich richtig vermute, was Du machen willst, sollte Dir die folgende Klasse das tun:


public class MyFunnyDateObject
{
private long lastModified;
private byte[] data;

public MyFunnyDateObject(long lastModified, byte[] data)
{
this.lastModified = lastModified;
this.data = data;
}

public long getLastModified()
{
return lastModified;
}

public byte[] getData()
{
return data;
}
}
[/PHP]

Ansonsten schliesse ich mich der Frage von perdi an.

Peter

Geschrieben

Ich sende es mit post an den Server.

Ich habe dazu den HttpClient von Jakarta benutzt.

Das geht gut. Aber ich kann das Datum nicht mehr an die Multipart-Verbindung anhängen, weil er nur den Namen und die ganze Datei zulässt.

Geschrieben
Aber ich kann das Datum nicht mehr an die Multipart-Verbindung anhängen, weil er nur den Namen und die ganze Datei zulässt.
Multipart hat unter anderem deshalb seinen Namen, weil das Format die Möglichkeit bietet mehrere Datenteile (multiple parts halt) zu senden.

Was spricht dagegen zwei verschiedene Parts zu senden?!

Einer enthält die eigentlichen Daten, der zweite die Meta-Informationen in einem standardisierten Format. Mal ganz abgesehen davon, dass das Datum (und andere Werte) natürlich auch als ganz normale POST oder GET Parameter mit übertragen werden können.

Geschrieben

Also ich habe eine Funktion die heißt "schicken".

In der mache ich alles um die Daten zu übertragen.

Zuerst kommt eine Schleife (unwichtig).

Dann erzeuge ich ein Objekt vom HttpClient und dann das post:

MultipartPostMethod post = new MultipartPostMethod(url);
Bis dahin ist alles klar. Jetzt kommt mein Problem: Das habe ich bisher gemacht
post.addParameter(liste[i].getName(), liste[i]);
(Die Liste ist eine Fileliste, aber das wisst ihr vielleicht selber) Das ging bisher auch ganz gut. Ich habe noch ein bißchen Schmu drumherum. (try und catch) Und ich rufe auch noch den Server:
int result = client.executeMethod(post);
Aber wenn ich versuche das Datum mit anzuhängen meckert er rum.
post.addParameter(liste[i].getName(), datum[i], liste[i]);
Hier sein nettes Sprüchchen: The method addParameter(String, String) in the type MultipartPostMethod is not applicable for the arguments (String, GregorianCalendar, File) Jedes Datum der Dateien habe ich in ein Array gepackt
static GregorianCalendar[] datum;

OK. Mal abgesehen davon, dass ich gerade bemerkt habe, dass mein datum leer ist. Wo muss ich das denn nun hintun, damit er das mitsendet?

Geschrieben

Hi

also hiermit

Code:

post.addParameter(liste.getName(), liste);

Erstellst du einen Parameter der den Namen der Datei hat und deren Inhalt als Wert.

Um das Datum anzufügen musst du etwas ähnliches machen



post.addParameter("Parameternamen für das Datum", datum[i]);

Dann müsstest du an deinen Post 2 Parameter angehängt haben

Geschrieben
The method addParameter(String, String) in the type MultipartPostMethod is not applicable for the arguments (String, GregorianCalendar, File)
Natürlich!

Mach dir klar, was du machst und was erwartet wird. AddParameter kann nur zwei Argumente als Parameter auswerten: Den Namen des Parameters, der gesetzt werden soll und dessen Wert - mehr nicht.

Das liegt an der Funktionsweise des HTTP Protokolls. HTTP kennt weder Java, noch Objekte. Ein Calendar Objekt kannst du daher über HTTP nicht so, wie es ist übertragen. Mach dir klar, das HttpClient nur ein Java Aufsatz ist um schnell und komfortabel HTTP Requests zu erzeugen - nicht um Java Objekte oder Objektgraphen zu versenden. Erst wenn du verstanden hast, wie HTTP funktioniert, was das Multipart Format wirklich ist und was du mit dem HttpClient eigentlich wirklich machst wirst du eine Lösung für dein Problem finden. Vorher ist es nur Rumstochern im Sumpf.

Du wirst also deine Datums-Informationen, um sie über HTTP versenden zu können, zunächst in eine Textform überführen müssen, die du dann wiederrum auf dem Server wieder auswertest un din Objekte zurücktransferierst, mit denen du dann wieder weiterarbeiten kannst.

Geschrieben

Jetzt hat es KLICK gemacht.

Ich habe immer gedacht, das ich mit addParameter alle auf einmal anhängen kann. Aber es ist ja so das ich immer einen anhänge und mit einem neuen addparameter noch einen dazu machen kann.

Da war wieder ein ganz schön großes Brett vor meinem Kopf!

Danke für die Hilfe!

Jetzt ist alles klar!:)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...