在Android中通过Java修改文件权限
在LINUX下每个文件都有一个权限的属性 ,那么在Android中怎么用java改变某个文件的权限呢?
Android中有两种方法可以改变文件的权限
1. 用openFileOutput方法:
[java] view plain copy
- FileOutputStreamfos;
- fos=openFileOutput("filename",MODE_WORLD_READABLE);
FileOutputStreamandroid.content.ContextWrapper.openFileOutput(Stringname, 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()
[c-sharp] view plain copy
- Runtime.getRuntime().exec("chmod644"+filename);
该方法调用系统命令chmod来改变文件的权限,为了能判断命令的返回值,最好写成:
[java] view plain copy
- Processp=Runtime.getRuntime().exec("chmod644"+filename);
- intstatus=p.waitFor();
- if(status==0){
- //chmodsucceed
- }else{
- //chmodfailed
- }
更多相关文章
- Mapbox Android学习笔记(1)简介
- Android(安卓)Handler消息机制(源码分析)
- Android中Handler Runnable与Thread的区别详解
- Android-缓存数据保存-通用方法
- 关于Base64解码和编码报错的问题
- 浅谈Java中Collections.sort对List排序的两种方法
- NPM 和webpack 的基础使用
- Python list sort方法的具体使用
- 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程