Search the FirstSpirit Knowledge Base
Hallo zusammen,
ich bin mir nicht sicher ob ich was falsch mache oder ob es sich hier vielleicht wirklich um einen Bug handelt
Ich habe einen String in dem ein wenig Text steht. Diesen Text möchte ich als txt Datei im Media Store speichern.
Ich verwende ein vorhandenes MediaStoreelement und tausche die File dahinter aus. Das Problem ist die neue Datei ist eine 0kbyte Datei und ich weiß nicht wieso.
Leider gibt es keine Info über die setFile - Methode in der API
Es wird kein Fehler geworfen.
// create new File
else {
// update this File
if (lQuoteElement instanceof Media) {
Media lMediaQuote = (Media) lQuoteElement;
if (lZitatString != null) {
ByteArrayInputStream lStream = new ByteArrayInputStream(
lZitatString.getBytes());
try {
if (!lMediaQuote.isLocked()) {
lMediaQuote.setLock(true);
}
File lOldFile = lMediaQuote.getFile(lZitatFolder
.getProject().getLanguage("DE"));
lOldFile.setFile(lZitatString.getBytes().length,
lStream, "txt");
if (lMediaQuote.isLocked()) {
lMediaQuote.setLock(false);
}
} catch (IOException e) {
Logging.logError(e.getMessage(), e, LOGGER);
} catch (LockException e) {
Logging.logError(e.getMessage(), e, LOGGER);
} catch (ElementDeletedException e) {
Logging.logError(e.getMessage(), e, LOGGER);
}
}
}
}
Hallo,
welche FirstSpirit Version wird denn eingesetzt?
In 5.0.210 klappt es bei mir mit deinem Code.
Sobald lZitatString allerdings ein Leerstring ist, wird die Datei bei mir auch 0KB groß, was auch logisch ist. Es befindet sich keine Prüfung in dem Code ob der String leer ist. Es wird nur auf !=null geprüft. Könnte hier der Fehler liegen?
Viele Grüße
Rouven
Hier fehlt der "lMediaQuote.save()
" Aufruf.
das war das Problem. vielen Dank