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?
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()
?
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.
Sie können Dateien mit Pfad in einem privaten Verzeichnis wie diesem hinzufügen
%Vor% Verwenden Sie getFilesDir()
, um ein File
im Stammverzeichnis des files/
-Verzeichnisses Ihres Pakets zu erhalten.
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.