zoukankan      html  css  js  c++  java
  • openFileOutput 文件属性设置、主动配置文件的可读写属性及事实上现方式

    首先參考

    Android 内部存储相关的函数(getCacheDir,getDir, getFileStreamPath,getFilesDir,openFileInput, ...)

    1. 用openFileOutput方法改变文件的属性,可是该方法有局限性,他创建的文件仅仅能位于该程序的私有文件夹下,即/data/data/app-package/files/。


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

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

    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来实现的改变文件权限的功能。

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


     

    2. 用Runtime.getRuntime().exec()调用系统命令chmod来改变文件的权限,为了能推断命令的返回值,最好写成:


    Process p = Runtime.getRuntime().exec("chmod 644 " + filename);    
    int status = p.waitFor();    
    if (status == 0) {    
        //chmod succeed    
    } else {    
        //chmod failed    
    }    


  • 相关阅读:
    kotlin 通过 下标比对
    textarea元素调整
    jquery给两个标签绑定一个事件
    开发过程中遇到的错误
    response.setHeader各种用法详解
    如何在eclipse里删除一个类 然后SVN服务器也同时删了这个类
    @pathvariable 与@requestparam 写rest接口时遇到的
    $.getJSON
    easyUI学习
    jQuery validator addMethod 动态提示信息
  • 原文地址:https://www.cnblogs.com/cynchanpin/p/6885523.html
Copyright © 2011-2022 走看看