0

ls-lを解析せずにLinuxファイルのパーミッションを取得したい。RootToolsを使用するので、Permissionsクラスがあることがわかりますが、ファイルのアクセス許可データをそのオブジェクトに取得するにはどうすればよいですか?

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 に答える