要在安卓手机SD卡(或外部存储)上新建文件夹或文件有如下几个步骤:
1. 添加权限(在AndroidManifest.xml文件里添加)
<!-- 允许在外部存储器即SD卡上添加或删除系统文件--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 允许在外部存储器即SD卡上写数据--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允许在外部存储器即SD卡上读数据--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2. 新建文件夹
/** * 创建文件夹 */ public void createFolder() { //获取SD卡的路径 //String path = MyApplication.getContext().getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS).getPath(); //getFilesDir()获取你app的内部存储空间 File Folder = new File(MyApplication.getContext().getFilesDir(), "newFolder"); if (!Folder.exists())//判断文件夹是否存在,不存在则创建文件夹,已经存在则跳过 { Folder.mkdir();//创建文件夹 //两种方式判断文件夹是否创建成功 //Folder.isDirectory()返回True表示文件路径是对的,即文件创建成功,false则相反 boolean isFilemaked1 = Folder.isDirectory(); //Folder.mkdirs()返回true即文件创建成功,false则相反 boolean isFilemaked2 = Folder.mkdirs(); if (isFilemaked1 || isFilemaked2) { Log.i(Tag,"创建文件夹成功"); } else { Log.i(Tag,"创建文件夹失败"); } }else { Log.i(Tag,"文件夹已存在"); } }
3. 创建文件
/** * 创建文件 * @param fileName */ public void creatFile(String fileName) { //新建一个File类型的成员变量,传入文件名路径。 File mFile = new File(Const.path + "/" + fileName + ".xml"); //判断文件是否存在,存在就删除 if (mFile.exists()){ mFile.delete(); } try { //创建文件 mFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); Log.e("creatXMLFileException",e.getMessage()); } }
另外:昨天因为某些问题,把原来SDK给删了,换了新的SDK。原来的模拟器自然是没有了,于是我新建了模拟器重新运行我的软件,出现了Exception, 后来发现程序不能在模拟器上创建文件夹但是可以在手机上创建文件夹。现在发现了问题所在了,原来我建模拟器的时候没有添加SD卡存储,模拟器没有SD卡,自然是会创建文件夹失败。