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;@Overrideprotected 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;}}
}

效果图

Android — 创建文件及文件夹相关推荐

  1. android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹

    Android创建隐藏文件或者文件夹 android创建隐藏文件或者文件夹,其实只要在文件名或者文件夹名字前加一个点号即可. 隐藏文件(夹)可直接进行读写. 如果需要去除隐藏,那就是重命名,去除点即可 ...

  2. android创建一个新文件,如何在android中创建一个新文件夹DCIM

    张贴在评论,我想你的代码,并它为我工作. MainActivity.java public class MainActivity extends Activity { private final st ...

  3. Android复习15【动画:创建资源文件夹、创建动画资源文件、组合动画、属性动画、材料设计新特性】

    2020-05-09-[12周-周四] Android动画 https://blog.csdn.net/zhangbijun1230/article/details/80262359 https:// ...

  4. android 7 创建文件夹,Android 在 res/layout 文件夹 下创建一个 子文件夹实例

    Android 资源文件夹 Layout 文件夹 Layout 文件是存放Android的布局文件的资源文件夹,但是如果你想要在里面创建子文件夹,你会发现xml文件报错. 如何在Layout文件夹下方 ...

  5. android 创建多级目录,Android创建文件夹

    之前写过一篇博文<Android在SDcard建文件夹(在Android中移动文件必用)>http://xuewei.blog.51cto.com/6061915/1069843 pack ...

  6. android创建文件夹、文件file读、写内容

    1.读取文件,首先是权限: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/ ...

  7. android 字体文件压缩,Android创建assets文件夹并使用字体图标(Icon Font)

    首先我们要知道如何在AS中新建引用assets文件 1.将项目切换到Project模式 Project.png 2.要注意assets文件夹要跟Java文件在同一目录下,都包含在main的文件下面. ...

  8. android SD卡目录下创建、复制文件夹以及文件

    声明SD卡权限 <!-- 允许程序访问外部存储设备 --> <uses-permission android:name="android.permission.WRITE_ ...

  9. Android Studio项目中常见的需要自行创建的资源文件夹的位置(assets、raw、menu、anim等)

    写项目过程中,常遇到一些需要自行创建的资源文件夹时,容易忘记位置,现图示一下常见的资源文件夹的位置(Project 结构):                  

最新文章

  1. hdu 1251 统计难题
  2. 在flask上使用websocket
  3. python 基础命令-Python unittest第一篇:基础入门+命令行编译
  4. Activiti 简易教程一 version5.10
  5. 工业机器人什么情况下会出现奇点_功夫机器人周全:复合作业机器人规模应用的奇点有多远?...
  6. php fpm 日志记录,使用Nginx在PHP-FPM 7上启用错误日志记录?
  7. Python3学习笔记-字符串和字符串操作
  8. SpringBoot修改内置tomcat版本
  9. Android报错:The processing instruction target matching [xX][mM][lL] is not allowed.
  10. 红外热成像仪原理及应用
  11. 微信开发者工具 公众号网页调试的调试器没了?
  12. 计算机学win7画图,win7自带画图工具(mspaint.exe)
  13. camera 测光模式 和 实际应用
  14. StarUML for MAC 破解
  15. 多电脑共享键鼠,传输数据,共享剪贴板
  16. Web页面显示随机签名
  17. 不能共情你还当什么领导
  18. 如何查看glibc版本
  19. 发送邮件sendEmailUtil
  20. [BZOJ4808] 马(最大独立集,最大流)

热门文章

  1. 来测试下 2019 你一共写了多少行代码?
  2. bios 刷 灵耀14_华硕p8z77vlx2主板
  3. 小米6能读取卡信息无服务器,MIUI官方回应:米6公交开卡系服务升级、NFC功能可正常使用...
  4. 前端页面渲染markDown文件
  5. 播放器smplayer的各种键盘快捷键
  6. java求圆锥的体积并比较大小_帮写下作业,Java代码编写程序,声明变量保存圆锥的底圆半径和高,计算圆锥的体积和底圆面积,final double P...
  7. 现在Java程序员的薪资如何?有哪些就业方向
  8. [TomTom]安卓汉化版v1.3,中国及海外地图懒人包
  9. odoo-email邮箱配置
  10. could not download处理方式