如何在SD卡中创建一个只能用我的应用程序读写的文件夹?

时间:2015-02-26 01:21:58

标签: java android filesystems

我想在SD卡中创建一个只有我的应用可以读写的文件夹。我不希望用户有权访问。这是我的代码:

File file = new File(Environment.getExternalStorageDirectory(), "/myfolder");
file.mkdirs();

它成功创建了一个名为“myfolder”的目录,但每个人都可以访问它。如何保护创建的文件夹(或直接创建安全文件夹)?

3 个答案:

答案 0 :(得分:0)

你不能完全。任何人都可以取出卡片,将其放入SD卡读卡器,并在没有任何Android检查的情况下阅读。

现在,如果你担心的是其他应用程序访问它(而不是手机的所有者) - 你需要KitKat或更高版本,SD卡上的文件默认是私有的,只要它们不会放在公共目录中。在4.4之前,SD卡完全不可能是公共领域。

答案 1 :(得分:0)

我认为加密是你最好的朋友。您可以使用只有您的应用拥有密钥的symmetric encryption。只要你的读/写不是很多,这应该是一个很好的解决方案。

答案 2 :(得分:0)

通过此示例,您可以将文件放在内部存储空间中的一个固定空间中。

写文件:

try {
 OutputStreamWriter fout= new OutputStreamWriter(
 openFileOutput("test.txt", Context.MODE_PRIVATE));
 fout.write("This is a test.");
 fout.close();
} catch (Exception ex) {
  Log.e("Files", "Error writing file to internal memory");
}

您可以在以下网址找到您的文件:

  

/data/data/java_package/files/test.txt

阅读文件:

try {
  BufferedReader fin = new BufferedReader(new InputStreamReader(openFileInput("test.txt")));
  String texto = fin.readLine();
  fin.close();
} catch (Exception ex) {
  Log.e("Files", "Error reading file from internal memory");
}