Java에는 다음을 설명하는 간단한 방법이 있습니다.
public static void movefolder (String OldPath, String NewPath) {// 파일 COPYFOLDER (OldPath, NewPath)를 복사합니다. // 혼동을 피하기 위해 소스 파일을 삭제합니다 (새 파일 (OldPath)); } 절단 중에 오류를 방지하기 위해 파일을 직접 절단해서는 안됩니다.
Java의 폴더 및 모든 서브 파일 및 서브 폴더를 복사하는 것은 "[Java]는"[Java]를 사용하여 파일 입력 및 출력 스트림을 사용하여 한 폴더와 다른 폴더에서 모든 파일을 복사하는 작업을 완료합니다 "(링크를 열려면 클릭).
핵심은 폴더, 서브 파일 및 하위 폴더를 삭제하는 것입니다.
Java에서 파일 클래스의 delete () 메소드는 빈 폴더 또는 단일 파일 만 삭제할 수 있습니다. 따라서 전체 폴더를 가로 지르고 가장 안쪽 폴더의 파일로 시작하고 재귀 삭제를 수행해야합니다. 특정 방법은 다음과 같습니다.
// 디렉토리 및 디렉토리에서 모든 하위 디렉토리 및 파일을 삭제하십시오 Public STATIC BOOLEAN DELETEDIR (FILE DIR) {// 폴더 인 경우 (DIR.ISDIRECTORY ()) {// 해당 폴더 문자열의 모든 파일을 읽습니다 [children = dir.list (); // 디렉토리에서 하위 디렉터를 재귀 적으로 삭제합니다 (int i = 0; i <children.length; i ++) {// file f = 새 파일 (문자열 parent, string child) // 부모 추상 경로 이름은 디렉토리를 나타내는 데 사용되며, 자식 경로 이름 문자열은 디렉토리 또는 파일을 나타내는 데 사용됩니다. // 파일 경로는 파일 경로와 정확히 동일합니다. 부울 isdelete = deletedir (새 파일 (dir, children [i])); // 삭제하고 삭제할 것이 없으면 isdelete == false가 있으면 (! isdelete) {return false; }}} // 읽은 내용은 파일 또는 빈 디렉토리입니다. return dir.delete ()를 직접 삭제할 수 있습니다. } 따라서 전체 메소드가 연결되는 방식, 디스크 C 아래의 A 폴더 및 모든 하위 파일 및 하위 폴더를 디스크 F로 이동하고 이름을 바꿉니다.
java.io.*; public class cuttest {// 디렉토리 및 디렉토리에서 모든 하위 디렉토리와 파일을 삭제합니다. public static boolean deletedir (file dir) {// 폴더 인 경우 (dir.isdirectory ()) {// 해당 폴더 문자열의 모든 파일을 읽습니다 [] children = dir.list (); // 디렉토리에서 하위 디렉터를 재귀 적으로 삭제합니다 (int i = 0; i <children.length; i ++) {// file f = 새 파일 (문자열 parent, string child) // 부모 추상 경로 이름은 디렉토리를 나타내는 데 사용되며, 자식 경로 이름 문자열은 디렉토리 또는 파일을 나타내는 데 사용됩니다. // 함께 연결된 파일 경로 Boolean isdelete = deletedir (새 파일 (dir, children [i])); // 삭제하고 삭제할 것이 없으면 isdelete == false가 없으면이 시간에서 (! isdelete) {return false; }}} // 파일이나 빈 디렉토리를 읽으면 return dir.delete ()를 직접 삭제할 수 있습니다. } // 특정 디렉토리 및 디렉토리에 모든 하위 디렉토리와 파일을 새 폴더에 복사 공개 정적 void Copyfolder (String OldPath, String NewPath) {Try {// 폴더가 존재하지 않으면 새 폴더 (newPath)를 만듭니다. mkdirs (); // 전체 폴더의 내용을 파일 문자열 배열로 읽고 아래 커서 i를 설정 한 다음 아래로 이동하여 배열 파일을 읽기 시작하기 시작합니다. filleList = new File (OldPath); 문자열 [] file = fileList.list (); //이 온도는 임시 파일 포인터 일뿐입니다. // 전체 프로그램은 임시 파일 파일 temp = null을 생성하지 않습니다. for (int i = 0; i <file.length; i ++) {// OldPath가 경로 분리기/또는//파일 이름으로 끝나면 OldPath/파일 이름이 괜찮습니다. 그렇지 않으면 OldPath 후에 경로 분리기를 추가하고 파일 이름을 추가하십시오. if (OldPath.endswith (file.separator)) {temp = new File (OldPath + file [i]); } else {temp = 새 파일 (OldPath + file.separator + file [i]); } // 커서가 파일을 만나면 (temp.isfile ()) {fileInputStream input = new FileInputStream (temp); // 파일의 복사 및 이름을 파일 outputStream output = new FileOutputStream (newPath + "/" + "rename_" + (temp.getName ()). toString ()); 바이트 [] bufferarray = 새로운 바이트 [1024 * 64]; int pereadlength; while ((prereadlength = input.read (bufferarray))! = -1) {output.write (bufferarray, 0, pereadlength); } output.flush (); output.close (); input.close (); } // 커서가 if (temp.isdirectory ()) {copyfolder (OldPath + "/" + file [i], newPath + "/" + file [i]); }}} catch (예외 e) {system.out.println ( "전체 폴더 컨텐츠를 복사 할 오류"); }} public static void movefolder (String OldPath, String NewPath) {// 파일을 복사합니다. 첫 번째 COPPOLDER (OldPath, NewPath); // 혼동을 피하기 위해 소스 파일을 삭제합니다 (새 파일 (OldPath)); } public static void main (String [] args) {movefolder ( "c :/a", "f :/b"); }}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.