package Archive; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class CopyDir { public static void main(String[] args) { copyDir(new File("D:\收藏"),new File("d:/arch")); } /** * 拷贝目录 * @param file * @param file2 */ public static void copyDir(File src, File dest) { dest.mkdirs(); //srcFile是否是文件 if(src.exists()) { //目录 if(src.isDirectory()) { //在dest下创建同名的子目录 File dir=new File(dest,src.getName()); dir.mkdirs(); File[] files=src.listFiles(); for(File f: files) { copyDir(f,dir); } } //文件 else { //绝对路径 copyFile(src,dest); } } } /** * 复制文件 * @param src * @param dest */ private static void copyFile(File srcFile, File destDir) { FileInputStream fin=null; File destFile = null; FileOutputStream fout=null; if(!destDir.exists()) { destDir.mkdirs(); } try { //源文件 fin = new FileInputStream(srcFile); //目标文件 destFile=new File(destDir,srcFile.getName()); fout=new FileOutputStream(destFile); int len=-1; byte[] buffer=new byte[1024]; while((len=fin.read(buffer))!=-1) { fout.write(buffer,0,len); } } catch (Exception e) { e.printStackTrace(); } finally { if(fout!=null||fin!=null) { try { fout.close(); fin.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
package Archive; import java.io.File; import java.io.IOException; import org.junit.jupiter.api.Test; public class FileRecursiveDemo { public static void main(String[] args) { showFile("d:/"); } /** * 显示文件(文件+文件夹)路径名 */ private static void showFile(String path) { File f = new File(path); if (f.exists()) { System.out.println("---------" + f.getAbsolutePath()); // 是否是目录 if (f.isDirectory()) { // 输出文件绝对路径 File[] children = f.listFiles(); if (children == null || children.length == 0) { System.out.println(f.getName() + "空"); return; } for (File ff : children) { String p0 = ff.getAbsolutePath(); showFile(p0); } } } } @Test public void FileTest() { File f =new File("d:/arch/4.txt"); //文件长度 long len = f.length(); System.out.println(len); //得到上级目录 String str=f.getParent(); System.out.println(str); System.out.println(f.canWrite()); //重命名,方便的剪切操作 f.renameTo(new File("d:arch","2.txt")); // f=new File("d:/ccc.txt"); if(!f.exists()) { try { //创建新文件 f.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } //列出文件系统的root File[] fs=File.listRoots(); for(File f0: fs) { System.out.println(f0.getAbsolutePath()); } } }
package Archive; import java.io.File; import org.junit.jupiter.api.Test; public class FileTest { @Test public void fileDemo1(){ File f=new File("d:\arch\1.txt"); System.out.println(f.exists()); System.out.println(f.isDirectory()); String dir="d:/Project"; f=new File(dir); if(!f.exists()) { f.mkdir(); } if(f.isDirectory()) { File[] files=f.listFiles(); for(File f0:files) { System.out.println(f0.getAbsolutePath()); } } } }