dheim
I'm new here

Schreiben einer Datei schlägt fehl - setFile Access Api

Jump to solution

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);

                    }

                }

            }

        }

0 Kudos
1 Solution

Accepted Solutions
Peter_Jodeleit
Crownpeak employee

Hier fehlt der "lMediaQuote.save()" Aufruf.

Peter

View solution in original post

0 Kudos
3 Replies
broszeit
I'm new here

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

0 Kudos
Peter_Jodeleit
Crownpeak employee

Hier fehlt der "lMediaQuote.save()" Aufruf.

Peter
0 Kudos

das war das Problem. vielen Dank Smiley Happy

0 Kudos