2012-11-26 154 views
2

文件的权限和属性我怎么才能得到在代码中的Android的eclipse DDMS中列出的文件的权限。还有像 1)的属性。所有者和它的权限,如读,写,执行 2)。组和它的权限,如读,写,执行 3)。他人权限我怎样才能得到在Android的

在此先感谢。

+0

您可以在Process中使用'ls -l'命令。但我认为它只有在您拥有该目录的读权限的情况下才有效。否则你需要root权限。 – user370305

+0

@Ridcully我有一个File对象。我有一个正常的属性,如大小,位置,mimetype等。我需要一个文件的所有者和组以及它们各自的权限 – Moses

+0

@ user370305我已经植入了我的模拟器。但我不知道如何通过代码来获取正常用户创建的文件。 – Moses

回答

2
ProcessBuilder processBuilder = new ProcessBuilder("ls", "-l").directory(new File(file.getParent()));// TODO CHECK IF THE FILE IS SD CARD PARENT IS NULL 
    if(BuildConfig.DEBUG)Log.v(TAG, "dir:-"+processBuilder.directory()); 
    Process process = processBuilder.start(); 
    PrintWriter out = new PrintWriter(new OutputStreamWriter(process.getOutputStream())); 
    BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream())); 
    out.flush(); 
    String resultLine; 
    resultLine = in.readLine(); 

    while (resultLine != null) { 
     System.out.println(resultLine); 
} 

上述代码的结果将是,

  • “lrwxrwxrwx根根2012年12月12日13时34分的SD卡”
在此结果的前10个字符

权限。 在于,

  • 2,3,4-字符 - 显示读,写,执行者的许可,
  • 5,6,7字符 - 显示读,写,执行组的权限,
  • 8,9,10人物 - 节目读,写,执行等

    然后,所有者和组的许可,

  • 11至19个字符 - 显示了文件的所有者,
  • 20至29个字符 - 显示文件组。