2016-06-17 9 views
0

Wenn ich versuche, eine interne Datei in meiner Android App zu erstellen, ist die erstellte Datei immer ein Verzeichnis. Ich sah einen ähnlichen Beitrag und anscheinend die Art, wie sie das Problem lösten, indem sie mkdirs() auf dem Elternverzeichnis der Datei anriefen. Das hat aber für mich nicht funktioniert. Ich habe versucht, einen Schrägstrich an den Anfang des Dateinamens hinzuzufügen, einen Schrägstrich nach, beides zu tun, und ich habe auch versucht, eine Erweiterung wie .txt zum Dateinamen hinzuzufügen. Egal was ich mache, die resultierende Datei ist immer ein Verzeichnis, keine schreibbare oder lesbare Datei. Der folgende Code befindet sich in meiner Hauptaktivitätsklasse, daher der Aufruf getFilesDir().Android-Datei wird immer als Verzeichnis erstellt

import java.io.File; 
import java.io.IOException; 

// always logs "false" 
public void createFile() { 
    File file = new File(getFilesDir(), "myFile"); 

    try { 
    file.createNewFile(); 
    Log.i("" + file.isFile()) 
    } catch (IOException e) { 
    Log.e("The file might no exist.") 
    } 
} 

Antwort

0

Es stellte sich heraus createNewFile() nichts tat, weil ich die Datei als Verzeichnis das erste Mal, dass ich den Code getestet geschaffen hatte. Seitdem habe ich nur den Ordner referenziert, den ich jedes Mal erstellt hatte, wenn ich lief. Sobald ich einmal delete() für die Datei anrief, erstellte ich die Datei erneut mit einer Erweiterung im Namen.