0

我想在不解析 ls -l 的情况下获得 linux 文件权限。由于我将使用 RootTools,我看到它有一个Permissions类,但是我应该如何将 File 的权限数据获取到该对象中?

4

2 回答 2

1

如果您不能修改源使用反射:

private Permissions RootToolsInternalMethods_getPermissions(String line)
{
    try
    {
        RootTools rootTools = new RootTools();
        Method method = rootTools.getClass().getDeclaredMethod("getInternals");
        method.setAccessible(true);
        RootToolsInternalMethods rootToolsInternalMethods = (RootToolsInternalMethods)method.invoke(rootTools);
        return rootToolsInternalMethods.getPermissions(line);
    }
    catch (Exception ignore) {}

    return null;
}
于 2016-11-01T15:21:14.040 回答
0

RootToolsInternalMethods 有 getPermissions(String) 方法,但它们只能在 RootTools 类中访问

来自 RootTools 源

private static final RootToolsInternalMethods getInternals() {
    if (rim == null) {
        RootToolsInternalMethods.getInstance();
        return rim;
    } else {
        return rim;
    }
}

好像我必须修改 RootTools 源并从 ls -l 输出获取权限

getInternals().getPermissions("ls -l output line");
于 2013-02-17T16:32:54.150 回答