재귀적으로 파일/폴더를 복사/삭제하려면:
2995 단어 폴더
package cn.syswin.copy;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicLong;
public class CopyFiles {
private static AtomicLong delFileCount = new AtomicLong(0);
private static AtomicLong copyFileCount = new AtomicLong(0);
public static void main(String[] args) throws Exception {
long start = System.currentTimeMillis();
copyFiles("D:\\WorkSpace\\Test\\aa", "D:\\WorkSpace\\Test\\ee");
// deleteFiles("D:\\WorkSpace\\Test\\ee");
System.out.println(" ( ): " + ((System.currentTimeMillis() - start) / 1000 / 60));
}
//
public static void copyFiles(String originPath, String destPath) throws Exception {
File file = new File(originPath);
if (file.isDirectory()) {
File f = new File(destPath);
if (!f.exists()) {
System.out.println(copyFileCount.incrementAndGet() + " " + f.toString());
f.mkdir();
}
File[] files = file.listFiles();
for (File file2 : files) {
copyFiles(file2.toString(), destPath + File.separator + file2.getName());
}
} else {
copy(originPath, destPath);
}
}
//
public static void copy(String originPath, String destPath) throws IOException {
File originFile = new File(originPath);
File destFile = new File(destPath);
if(!destFile.exists() || originFile.length() != destFile.length()) { //
System.out.println(copyFileCount.incrementAndGet() + " " + destPath + " [" + originFile.length() + " " + destFile.length() + "]"); // + originPath + " >>> "
DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(originFile)));
byte[] data = new byte[in.available()];
in.read(data);
DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(destFile)));
out.write(data);
out.flush();
in.close();
out.close();
}
}
//
public static void deleteFiles(String path) {
File f = new File(path);
if (f.isDirectory()) {
File[] file = f.listFiles();
for (File file2 : file) {
deleteFiles(file2.toString());
}
}
deleteFile(f);
}
public static void deleteFile(File file) {
if (file.exists()) {
System.out.println(delFileCount.incrementAndGet() + " " + file.toString());
file.delete();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Cognos에서 새로 만든 그룹에 폴더 찾아보기 권한을 부여해도 폴더가 표시되지 않음Cognos BI에서 한 사용자(예: coguser2)를 새로 만든 역할(예: Role01)에만 속하고 공유 폴더의 특정 폴더(예에서는 TestFolder)에 다음과 같이 액세스 권한 부여 , 이것으로 보일 것 같아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.