Android — 创建文件及文件夹
来源:互联网 发布:js文件为什么不能编辑 编辑:程序博客网 时间:2024/06/06 15:02
Android 创建文件及文件夹
说明
Android 中创建文件及文件夹,实际上用的都是基本的 java 语法,和普通的 java 程序不同的是:
如果要访问 SD 卡,需要配置权限,而且在 API 23 上,需要考虑运行时权限检查。
写 SD 卡的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
创建/删除文件的权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
创建单个文件 : File.createNewFile()
创建文件夹但不会创建缺失的父文件夹: File.mkdir()
创建文件夹并且创建缺失的父文件夹:File.mkdirs()
Demo
创建一个工具类 FileUtils,来统一提供创建文件和文件夹的功能
package com.yu.demos.utils;import android.util.Log;import java.io.File;import java.io.IOException;/** * 创建文件 和 文件夹 * Created by yu on 2016/8/21. */public class FileUtils { private static final String TAG = "FileUtils"; public static final int FLAG_SUCCESS = 1;//创建成功 public static final int FLAG_EXISTS = 2;//已存在 public static final int FLAG_FAILED = 3;//创建失败 /** * 创建 单个 文件 * @param filePath 待创建的文件路径 * @return 结果码 */ public static int CreateFile(String filePath) { File file = new File(filePath); if (file.exists()) { Log.e(TAG,"The file [ " + filePath + " ] has already exists"); return FLAG_EXISTS; } if (filePath.endsWith(File.separator)) {// 以 路径分隔符 结束,说明是文件夹 Log.e(TAG,"The file [ " + filePath + " ] can not be a directory"); return FLAG_FAILED; } //判断父目录是否存在 if (!file.getParentFile().exists()) { //父目录不存在 创建父目录 Log.d(TAG,"creating parent directory..."); if (!file.getParentFile().mkdirs()) { Log.e(TAG,"created parent directory failed."); return FLAG_FAILED; } } //创建目标文件 try { if (file.createNewFile()) {//创建文件成功 Log.i(TAG, "create file [ " + filePath + " ] success"); return FLAG_SUCCESS; } } catch (IOException e) { e.printStackTrace(); Log.e(TAG,"create file [ " + filePath + " ] failed"); return FLAG_FAILED; } return FLAG_FAILED; } /** * 创建 文件夹 * @param dirPath 文件夹路径 * @return 结果码 */ public static int createDir (String dirPath) { File dir = new File(dirPath); //文件夹是否已经存在 if (dir.exists()) { Log.w(TAG,"The directory [ " + dirPath + " ] has already exists"); return FLAG_EXISTS; } if (!dirPath.endsWith(File.separator)) {//不是以 路径分隔符 "/" 结束,则添加路径分隔符 "/" dirPath = dirPath + File.separator; } //创建文件夹 if (dir.mkdirs()) { Log.d(TAG,"create directory [ "+ dirPath + " ] success"); return FLAG_SUCCESS; } Log.e(TAG,"create directory [ "+ dirPath + " ] failed"); return FLAG_FAILED; }}
测试使用:
package com.yu.demos.activity;import android.os.Bundle;import android.os.Environment;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.TextView;import com.yu.demos.R;import com.yu.demos.utils.FileUtils;/** * 创建文件 及 文件夹的 demo * Created by yu on 2016/8/22. */public class CreateFileDemo extends AppCompatActivity { private TextView tvResult; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_file); tvResult = (TextView) findViewById(R.id.tv_result); } /** * 创建单个文件 * @param view 创建文件按钮 */ public void createAFile(View view) { //获取 SD 卡路径 String path = Environment.getExternalStorageDirectory().getAbsolutePath(); int result = FileUtils.CreateFile(path + "/demos/file/test.txt"); showResult(result); } /** * 创建文件夹 * @param view 创建文件夹按钮 */ public void createADirectory(View view) { //获取 SD 卡路径 String path = Environment.getExternalStorageDirectory().getAbsolutePath(); int result = FileUtils.createDir(path + "/demos/file/tmp/test"); showResult(result); } /** * 显示结果 * @param result 结果码 */ private void showResult (int result) { switch (result) { case FileUtils.FLAG_SUCCESS: tvResult.setText("result: create success"); break; case FileUtils.FLAG_EXISTS: tvResult.setText("result: already exist"); break; case FileUtils.FLAG_FAILED: tvResult.setText("result: create failed"); break; } }}
效果图
0 0
- Android — 创建文件及文件夹
- android-创建文件及文件夹 - 随心
- Android创建文件夹及文件并写入数据
- Android创建文件夹及文件并写入数据
- Android创建文件夹及文件并写入数据
- Android创建文件夹及文件并写入数据
- 创建文件夹及文件---c
- Java创建文件夹及文件
- Java创建文件夹及文件
- java 创建文件及文件夹
- Java创建文件夹及文件
- Java创建文件夹及文件
- Java创建文件及文件夹
- Java创建文件夹及文件
- 创建log文件夹及文件
- Java创建文件夹及文件
- C# 创建文件夹及文件
- Java创建文件夹及文件
- Forms.Timer_tick不运行或间隔时间不符合设定的解决措施
- github删除远程分支&重命名远程分支
- Lisp之根源
- JAVA 并发编程-基于线程池设计的ScheduledExecutor(八)
- srs代码学习(2)- 线程模型
- Android — 创建文件及文件夹
- 年纪一大把,胡子一大堆,还能学好编程吗?今天我问了我自己
- android on the beaglebone black
- 调试好用的AES加密算法 和 安卓AES加密对应算法
- leetcode 257. Binary Tree Paths
- csdn如何转载别人的文章
- OA权限模块根据用户权限显示不同的菜单
- 腾讯笔试题:二进制地址为011011110000,大小为(4)10和(16)10块的伙伴地址
- 通过本地yum源安装软件报错[Errno 14] PYCURL ERROR 56 - "Failure when receiving data from the peer"