java无法在文件浏览器中查看所有文件 1 周,3 日 Questions & Answers 249 我在一个文件浏览器应用程序中遇到了一个奇怪的问题,我无法查看实际存在的每个文件/文件夹。似乎它们被过滤掉了。根资源管理器似乎可以找到文件,但我的应用程序无法找到。有什么想法吗?是的,我的手机是根
# 1 楼答案 File类无法工作的原因是您没有读取这些目录的权限。获得访问权限的唯一方法是读/写这些目录,即使用根权限,并且要使用根权限,必须运行基于linux的命令 我不知道如何准确地完成整个过程,但您应该使用^{} 通常要运行基于linux的命令,您需要执行Runtime.getRuntime.exec("command");,但是使用RootTools,整个过程非常简单,并且更容易获得命令的结果 如果您愿意,我可以尝试进一步解释如何手动操作(执行Runtime.getRuntime.exec("command");),或者如果您在Wiki上浏览RootTools并将其与应用程序集成,您可能会明白这一点 如果你还有其他问题,我很乐意尽我所能帮助你 编辑: 我看到了您的答案,因此您现在似乎对如何运行命令有了很好的理解。不过,RootTools会让一切变得更简单
# 2 楼答案 好的,我已经研究了更多的shell命令,这个方法很有效,但是这是最有效的方法吗 public void ls(String directory) { Process process = null; try { process = Runtime.getRuntime().exec("ls " + directory); } catch (IOException e) { e.printStackTrace(); } int read; BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); char[] buffer = new char[4096]; StringBuilder output = new StringBuilder(); try { while ((read = reader.read(buffer)) > 0) { output.append(buffer, 0, read); } } catch (IOException e) { e.printStackTrace(); } try { reader.close(); } catch (IOException e1) { e1.printStackTrace(); } try { process.waitFor(); } catch (InterruptedException e) { e.printStackTrace(); } Log.d("Files", output.toString()); }
# 1 楼答案
File
类无法工作的原因是您没有读取这些目录的权限。获得访问权限的唯一方法是读/写这些目录,即使用根权限,并且要使用根权限,必须运行基于linux的命令我不知道如何准确地完成整个过程,但您应该使用^{}
通常要运行基于linux的命令,您需要执行
Runtime.getRuntime.exec("command");
,但是使用RootTools,整个过程非常简单,并且更容易获得命令的结果如果您愿意,我可以尝试进一步解释如何手动操作(执行
Runtime.getRuntime.exec("command");
),或者如果您在Wiki上浏览RootTools并将其与应用程序集成,您可能会明白这一点如果你还有其他问题,我很乐意尽我所能帮助你
编辑: 我看到了您的答案,因此您现在似乎对如何运行命令有了很好的理解。不过,RootTools会让一切变得更简单
# 2 楼答案
好的,我已经研究了更多的shell命令,这个方法很有效,但是这是最有效的方法吗