Wie erstellt man eine Dateihierarchie im Verzeichnis / data / data / pkg / files von Android?

8

Ich versuche, 'foo / bar.txt' im Verzeichnis / data / data / pkg / files von Android zu erstellen.

Es scheint ein Widerspruch in der Dokumentation zu sein:

  

Um in eine Datei zu schreiben, rufen Sie Context.openFileOutput () mit dem Namen und dem Pfad auf.

Ссылка

  

Der Name der zu öffnenden Datei; Pfadtrennzeichen dürfen nicht enthalten sein.

Ссылка

Und wenn ich anrufe

%Vor%

Ausnahme wird ausgelöst:

%Vor%

Also, wie erstelle ich Datei in Unterordner?

    
alex2k8 11.12.2009, 16:26
quelle

5 Antworten

13

Es scheint, dass Sie auf ein Dokumentationsproblem gestoßen sind. Die Dinge sehen nicht besser aus, wenn Sie den Quellcode für ApplicationContext.java durchsuchen. Innerhalb von openFileOutput ():

%Vor%

getFilesDir() gibt immer das Verzeichnis "files" zurück. Und makeFilename() ?

%Vor%

Wenn Sie also openFileOutput() verwenden, können Sie das enthaltende Verzeichnis nicht steuern; Es wird immer im Verzeichnis "files" enden.

Es gibt jedoch nichts, was Sie davon abhält, Dateien in Ihrem Paketverzeichnis mit File und FileUtils selbst zu erstellen. Es bedeutet nur, dass Sie die Vorteile, die Ihnen die Verwendung von openFileOutput() bietet (wie automatisches Festlegen von Berechtigungen), verpassen werden.

    
Daniel Lew 11.12.2009, 16:45
quelle
9

Sie können Dateien mit Pfad in einem privaten Verzeichnis wie diesem hinzufügen

%Vor%     
user865197 27.07.2011 13:23
quelle
7

Verwenden Sie getFilesDir() , um ein File im Stammverzeichnis des files/ -Verzeichnisses Ihres Pakets zu erhalten.

    
CommonsWare 11.12.2009 17:30
quelle
5

Um in eine Datei in einem Unterordner des internen Speichers zu schreiben, müssen Sie zunächst die Datei (und den Unterordner, falls noch nicht vorhanden) erstellen und dann das FileOutputStream-Objekt erstellen.

Hier ist die Methode, die ich verwendet habe

%Vor%     
Dave Pile 15.05.2014 01:10
quelle
0

Angenommen, der ursprüngliche Post wollte sowohl ein Unterverzeichnis im Dateibereich erstellen als auch eine Datei darin schreiben, könnte dies in der Dokumentation neu sein:

%Vor%

Seit: API Level 1

  

Abrufen, erstellen, falls erforderlich, ein neues Verzeichnis, in dem die Anwendung   kann eigene benutzerdefinierte Datendateien platzieren. Sie können die zurückgegebene Datei verwenden   Objekt zum Erstellen und Zugreifen auf Dateien in diesem Verzeichnis. Beachten Sie diese Dateien   erstellt durch ein Dateiobjekt ist nur für Ihre eigenen zugänglich   Anwendung; Sie können nur den Modus des gesamten Verzeichnisses einstellen, nicht von   einzelne Dateien.

    
user1064558 19.03.2012 23:13
quelle

Tags und Links