本文介绍了如何以编程方式设置rw- r-- r--权限?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一个可以将应用程序的数据还原回/data/data/{packageName}的应用程序.恢复文件后,我将权限设置为rw- r-- r--.我以这种方式设置它:

I am developing an application that can restore apps' data back to /data/data/{packageName}. After restoring the files, I am setting the permissions to rw- r-- r--. I set it in this way:

public int chmod(File path, int mode) throws Exception {
    Class fileUtils = Class.forName("android.os.FileUtils");
    Method setPermissions = fileUtils.getMethod("setPermissions",
            String.class, int.class, int.class, int.class);
    return (Integer) setPermissions.invoke(null, path.getAbsolutePath(),
            mode, -1, -1);
}

并调用chmod(file, 644);

但是当我在文件浏览器中检查这些文件的权限时,显示为"--- rwx r-x".

But when I check these files' permissions in file explorer it shows me "--- rwx r-x".

那么我如何将权限设置为rw- r-- r-?

So how can I set the permissions to rw- r-- r--?

推荐答案

Process process = null;
DataOutputStream dataOutputStream = null;

try {
    process = Runtime.getRuntime().exec("su");
    dataOutputStream = new DataOutputStream(process.getOutputStream());
    dataOutputStream.writeBytes("chmod 644 FilePath\n");
    dataOutputStream.writeBytes("exit\n");
    dataOutputStream.flush();
    process.waitFor();
} catch (Exception e) {
    return false;
} finally {
    try {
        if (dataOutputStream != null) {
            dataOutputStream.close();
        }
        process.destroy();
    } catch (Exception e) {
    }
}

这篇关于如何以编程方式设置rw- r-- r--权限?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-16 11:50