安卓中的文件权限

5
我在这里只是想问一个可能很简单的问题,我正在处理文件、FileOutputStream和FileInputStream。但我只想从文件中获取/设置一些属性,比如文件所有者、读写权限等。
我找到了FileDescriptor和FilePermission类,但不知道该使用哪个,所以请求帮助;实际上,我正在使用File类中的setReadOnly()方法,但这并不是我要找的东西。
3个回答

4
这里面有几个问题:
  1. 默认情况下,一个应用程序可以无限制地访问自己的文件(读/写/删除/'执行'...无论执行是什么),但不能访问其他任何应用程序的文件。
  2. Android使得与其他应用程序及其数据进行交互变得困难,除非通过Intent。对于权限,Intent将无法使用,因为您依赖于接收Intent的应用程序来执行/提供您想要的内容;它们可能并不打算向任何人公开其文件的权限。虽然有办法绕过它,但只适用于在同一JVM中操作的应用程序(即您已经设计为一起在同一JVM中运行的应用程序)

您的应用程序可以获取和设置自己的文件的权限,但无法为其他人设置。据我所知,SDK中没有明确的所有权概念,因此您无法查找文件的所有者。

Android基于Linux内核,但它不是Linux。它已经被大量优化以在移动设备上运行。如果您有一个应用程序只能在自己的沙盒中运行的机器,您可以削减诸如权限和所有权之类的东西,并获得一个更小、更快的操作系统。您的文件仅有您放置(并强制执行)的权限。其他应用程序的文件不存在。


2

1
您好DrJokepu,感谢您的帮助。我正在了解FilePermission类,但它所做的是授予Java访问文件系统的权限。而我真正需要的是查看文件系统到Java的权限状态,即从文件系统到Java的状态。再次感谢。 - c4r1o5

1
嗯...如果你只是想查看权限,你可以直接使用"ls -l"命令吧?

是的,您可以使用相同的底层文件系统操作来自本地代码,尽管某些目录可能没有必要的权限,以允许“其他”用户ID生成列表。 - Chris Stratton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接