Android — 创建文件及文件夹
2016-08-25 17:06
253 查看
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 voi 4000 d 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; } } }
效果图
![](http://i.imgur.com/OsjR6PT.gif)
相关文章推荐
- Android创建文件夹和文件
- android创建文件夹和文件的一些经验教训
- Android创建文件夹及文件并写入数据
- Android创建隐藏文件或者文件夹,并对其读写操作android创建隐藏文件或者文件夹,其实只要在文件名或者文件夹名字前加一个点号即可。 隐藏文件(夹)可直接进行读写。 下面是一段隐藏文件的创建
- android创建文件与文件夹
- Android创建文件夹及文件并写入数据
- 百度——个人云存储pcs——Android使用百度云盘(2)——创建文件夹和上传文件
- android创建文件夹和文件
- android SD卡创建文件夹,文件并读写
- android创建文件夹和文件和安装其他apk
- Android创建文件夹和文件
- Android创建隐藏文件或者文件夹,并对其读写操作
- android-创建文件及文件夹 - 随心
- android创建隐藏文件或者文件夹,并对其读写操作
- android创建文件夹和文件
- android创建文件夹和文件的一些经验教训
- Android创建和删除文件夹和文件
- android 创建、删除 文件和文件夹 测试
- Android创建隐藏文件或者文件夹,并对其读写操作
- Android编程心得-在Assets文件夹中放入.sql文件实现创建SQlite表的操作