将私有文件写入内部存储

Posted

技术标签:

【中文标题】将私有文件写入内部存储【英文标题】:write private file to internal storage 【发布时间】:2011-10-10 01:14:03 【问题描述】:

我试图在内部存储上写入一些文件。

我在Data Storage 上看到了FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);,我知道该文件对我的应用程序来说是私有的。

但问题是它只能打开一个没有路径的文件,所以我首先用file.mkdir()打开了一个新的目录文件,但是现在,如何将文件写为私有文件?

【问题讨论】:

那你为什么不尝试存储在 sdcard 中? 【参考方案1】:

我看到了FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);在数据存储上,我知道该文件将是我的应用程序的私有文件。

正确。默认情况下,它们将是私有的。

但问题是它只能打开一个没有路径的文件,所以我首先用file.mkdir()打开了一个新的目录文件,但是现在,如何将文件写为私有文件?

默认情况下,您在 getFilesDir() 的子目录中创建的文件是私有的 - 您无需执行任何特殊操作即可将它们设为私有。

【讨论】:

但根据 android 培训文档 (developer.android.com/training/basics/data-storage/…)【参考方案2】:

如果您调用 Context.openFileOutput(),文件将始终写入应用程序的数据目录(即“/data/data/appname/filename”)。您不能在此处使用子文件夹! The documentation for this function 说

name要打开的文件的名称;不能包含路径分隔符。

【讨论】:

是的,我知道这一点。但是@CommonsWare 说我在应用程序的数据目录中创建的每个目录都是私有的。所以我使用 new File("/data/data/appname/dirname").mkdir() 创建了一个文件夹

以上是关于将私有文件写入内部存储的主要内容,如果未能解决你的问题,请参考以下文章

Android14.1 内部文件存储和读取

如何写入android的内部存储

Xamarin Forms:在 Android 设备的内部存储中写入文件

在读取/写入文件到内部/外部存储android时使用啥类和方法?

从 Google Cloud Function (Python) 将新文件写入 Google Cloud Storage 存储桶

如何从 Job 内部将 csv 文件写入 S3?