使用ls,我可以获得以下信息。如何在android中从File对象中获取相同的内容。例如如何使用u0_a23对象获取文件名称字符串。
root@android:/ # ls /proc/ -l
dr-xr-xr-x root root 2013-07-01 12:19 1
dr-xr-xr-x root root 2013-07-01 12:19 10
dr-xr-xr-x root root 2013-07-01 12:31 1069
dr-xr-xr-x root root 2013-07-01 12:19 11
dr-xr-xr-x root root 2013-07-01 12:19 12
dr-xr-xr-x root root 2013-07-01 12:19 13
dr-xr-xr-x root root 2013-07-01 12:19 14
dr-xr-xr-x root root 2013-07-01 12:19 2
dr-xr-xr-x root root 2013-07-01 12:19 25
dr-xr-xr-x root root 2013-07-01 12:19 26
dr-xr-xr-x root root 2013-07-01 12:19 27
dr-xr-xr-x root root 2013-07-01 12:19 28
dr-xr-xr-x root root 2013-07-01 12:19 29
dr-xr-xr-x root root 2013-07-01 12:19 290
dr-xr-xr-x root root 2013-07-01 12:19 292
dr-xr-xr-x system system 2013-07-01 12:19 294
dr-xr-xr-x root root 2013-07-01 12:19 3
dr-xr-xr-x system system 2013-07-01 12:19 30
dr-xr-xr-x root root 2013-07-01 12:19 31
dr-xr-xr-x root root 2013-07-01 12:19 33
dr-xr-xr-x root root 2013-07-01 12:19 34
dr-xr-xr-x radio radio 2013-07-01 12:19 35
dr-xr-xr-x u0_a23 u0_a23 2013-07-01 12:20 357发布于 2013-07-01 21:04:46
您可以创建Process对象并执行命令。您可以将File对象的路径附加为参数。之后,您可以从InputStream中读取结果。
如果你需要一个例子,请评论。
发布于 2013-07-02 00:08:27
在Java7中有Files#getOwner,否则唯一的方法就是,正如vRallev所说的,使用一个进程。
尝试一个进程,看看速度有多快(在我的设备上,调试模式下的Galaxy S2只需要40ms。我想不是很多)。
我试着用文件信息实现一个小的对象FileInfo。也许你会发现它很有用。我不确定它是否每次都能工作(我假设唯一缺少的参数可能是大小之类的东西),但它可能是一个开始。
public static void test() {
long start = System.currentTimeMillis();
BufferedWriter out;
BufferedReader in;
String test = "";
List<FileInfo> fileInfoList = new ArrayList<FileInfo>();
try {
Process proc = Runtime.getRuntime().exec("ls -l");
out = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
String line = "";
while((line = in.readLine()) != null) {
fileInfoList.add(createFileInfo(line.split("\\s+")));
}
proc.waitFor();
in.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
long execTime = System.currentTimeMillis() - start;
System.out.println(execTime);
}
private static FileInfo createFileInfo(String... args) {
FileInfo fi = null;
if(args.length == 6) {
fi = new FileInfo(args[0],args[1],args[2],args[3] +" "+ args[4],args[5]);
} else if(args.length == 7) {
fi = new FileInfo(args[0],args[1],args[2],args[3],args[4] +" "+ args[5],args[6]);
}
return fi;
}
private static class FileInfo {
private String permissions;
private String owner;
private String group;
private String size;
private String date;
private String fileName;
private FileInfo(String permissions, String owner, String group, String size, String date, String fileName) {
this.permissions = permissions;
this.owner = owner;
this.group = group;
this.size = size;
this.date = date;
this.fileName = fileName;
}
private FileInfo(String permissions, String owner, String group, String date, String fileName) {
this.permissions = permissions;
this.owner = owner;
this.group = group;
this.date = date;
this.fileName = fileName;
}
}https://stackoverflow.com/questions/17405034
复制相似问题