一、文件夹复制
1.确保自己有文件的读写权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
2.定义工具类CopyUtils(定义工具类可以多次调用而不需要多次书写)
定义文件夹复制方法,传入原始路径和目标路径:
public int copy(String fromFile,String toFile){ //要复制的文件目录 File []fromList; File file=new File(fromFile); //判断文件是否存在 if(!file.exists()){ return -1; } //如果存在则获取当前目录下的所有文件,填充数组 fromList=file.listFiles(); //目标目录 File toList=new File(toFile); //创建目录 if(!toList.exists()){ toList.mkdirs(); } //遍历要复制的全部文件 for(int i=0;i<fromList.length;i++){ if(fromList[i].isDirectory()){//如果当前项为子目录,进行递归 copy(fromList[i].getPath()+"/",toFile+"/ "+fromList[i].getName()+"/"); }else {//如果当前项为文件则进行拷贝 copyFile(fromList[i].getPath(),toFile+fromList[i].getName()); } } return 0; } /** * 拷贝文件 */ public int copyFile(String fromFile,String toFile){ try { InputStream inputStream=new FileInputStream(fromFile); OutputStream outputStream=new FileOutputStream(toFile); byte bt[]=new byte[1024]; int d; while ((d=inputStream.read(bt))>0){ outputStream.write(bt,0,d); } inputStream.close(); outputStream.close(); return 0; } catch (Exception e) { return -1; } }
二、文件夹删除
1.定义删除的工具类
public class Deleteutils { /** *删除本地文件 */ public boolean deleteLocal(File file){ if(file.exists()){ if(file.isFile()){ file.delete();//如果为文件,直接删除 }else if(file.isDirectory()){ File []files=file.listFiles(); for(File file1:files){ deleteLocal(file1);//如果为文件夹,递归调用 } } file.delete(); return true; } return false; }