• 在Android java代码中如何改变文件的权限


    在LINUX下每个文件都有一个权限的属性 ,那么在Android中怎么用java改变某个文件的权限呢?

     Android中有两种方法可以改变文件的权限

     1. 用openFileOutput方法:

    FileOutputStream fos;  
    fos = openFileOutput("filename", MODE_WORLD_READABLE); 

    FileOutputStream android.content.ContextWrapper .openFileOutput(String name, int mode) throwsFileNotFoundException

    Open a private file associated with this Context's application package for writing. Creates the file if it doesn't already exist.

    可用的mode 参数如下:

        /**
         * File creation mode: the default mode, where the created file can only
         * be accessed by the calling application (or all applications sharing the
         * same user ID).
         * @see #MODE_WORLD_READABLE
         * @see #MODE_WORLD_WRITEABLE
         */
        public static final int MODE_PRIVATE = 0x0000;
        /**
         * File creation mode: allow all other applications to have read access
         * to the created file.
         * @see #MODE_PRIVATE
         * @see #MODE_WORLD_WRITEABLE
         */
        public static final int MODE_WORLD_READABLE = 0x0001;
        /**
         * File creation mode: allow all other applications to have write access
         * to the created file.
         * @see #MODE_PRIVATE
         * @see #MODE_WORLD_READABLE
         */
        public static final int MODE_WORLD_WRITEABLE = 0x0002;
        /**
         * File creation mode: for use with {@link #openFileOutput}, if the file
         * already exists then write data to the end of the existing file
         * instead of erasing it.
         * @see #openFileOutput
         */
        public static final int MODE_APPEND = 0x8000;

    其实该方法最终还是调用了系统的chmod来实现的改变文件权限的功能。

    但是该方法有局限性,他创建的文件只能位于该程序的私有目录下,即/data/data/app-package/files/

    2. 用Runtime.getRuntime().exec()

    Runtime.getRuntime().exec("chmod 644 " + filename);

    该方法调用系统命令chmod来改变文件的权限,为了能判断命令的返回值,最好写成:

    Process p = Runtime.getRuntime().exec("chmod 644 " + filename);  
    int status = p.waitFor();  
    if (status == 0) {  
        //chmod succeed  
    } else {  
        //chmod failed  
    }  
  • 相关阅读:
    postmessage
    input、textarea等输入框输入中文时,拼音在输入框内会触发input事件的问题
    h5判断设备是ios还是android
    js获取地址栏的参数
    BootStrap 响应式布局
    前端框架 BootStrap 快速入门(Hallo Word)
    HTML + CSS + JavaScript 实现注册页面信息验证(表单验证)
    HTML + CSS + JavaScript 实现勾选动态表格中的记录
    JavaScript常见的事件监听
    HTML + CSS + JavaScript 实现简单的动态表格
  • 原文地址:https://www.cnblogs.com/nick-zhang/p/3746065.html
Copyright © 2020-2023  润新知