


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());
}
}
}
}