【问题标题】:Create a folder that is not accessible by anyone?创建一个任何人都无法访问的文件夹?
【发布时间】:2018-09-22 13:20:39
【问题描述】:

我想创建一个文件夹,除了我之外没有人可以从我的应用程序访问,我的意思是没有用户可以打开该文件夹并使用它的内容。而且我说的不是在目录名称前添加.。

有可能吗?

谢谢。

【问题讨论】:

  • 这真的不可能。设备的所有者始终可以控制设备上的内容。
  • @mrunion 所以我不能加密文件夹?
  • 当然可以加密文件夹的内容。逐个文件,或创建一个包含多个文件的 zipfile 并加密该 zipfile。
  • @Barns 所以如果文件是视频,那么如果它们是加密的,那么没有人可以从应用程序外部访问它们?
  • @Barns 即使有根设备也无法在没有密钥的情况下访问?

标签: android android-file


【解决方案1】:

您是指 Android 文档中描述的 Internal Storage 吗?

只有您的应用可以访问此处保存的文件。

但是,这种方式不能阻止 root 用户读取您的文件。您可能需要对其进行加密以提供更好的安全性。

【讨论】:

  • 即使我保存到内部存储,用户也可以使用文件管理器浏览文件....如何安全?
  • 普通用户无法使用文件管理器访问它。如果你必须阻止root用户。这可能是一项非常复杂的任务(甚至可能涉及服务器)。至于加密,这个问题太大了,一个简单的方法就是找一个方便的加密库(例如,从这里android-arsenal.com/tag/87?sort=rating)。
【解决方案2】:

我认为我们不能锁定 root 用户的目录。 要通过限制访问来创建文件,请使用以下代码,

String FILENAME = "demo.txt";
String string = "Hello World";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

【讨论】:

  • 这会阻止打开文件吗?这应该使用文件输出流来完成吗?
  • 我可以直接创建一个文件并将其设为私有模式...然后在没有输出流的情况下添加内容吗?
【解决方案3】:

试试这个:

applicationContext.getFilesDir()

将保存在此目录中的所有内容只能通过您的应用访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 2021-07-15
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多