Javaでは、以下を説明する簡単な方法があります。
public static void moveFolder(String OldPath、String NewPath){//ファイルCopyFolder(OldPath、NewPath)をコピーします。 // deletedir(新しいファイル(oldpath))を混乱させないように、ソースファイルを削除します。 }切断中にエラーを防ぐためにファイルを直接カットしないでください。これにより、ある種の問題が発生します。
Javaのフォルダーとすべてのサブファイルとサブフォルダーをコピーすると、記事「[Java]がファイル入力と出力ストリームを使用して、1つのフォルダーと別のフォルダー内のすべてのファイルをコピーする操作を完了します」(リンクを開くためにクリックしてください)。
重要なのは、フォルダー、そのサブファイル、サブフォルダーを削除することです。
Javaでは、ファイルクラスのdelete()メソッドは、空のフォルダーまたは単一のファイルのみを削除できます。したがって、フォルダー全体をトラバースし、最も内側のフォルダー内のファイルから始めて、再帰的な削除を実行する必要があります。特定の方法は次のとおりです。
//ディレクトリおよびディレクトリ内のすべてのサブディレクトリとファイルを削除しますpublic static boolean deletedir(file dir){//フォルダーの場合(dir.isdirectory()){//そのフォルダー文字列のすべてのファイルを読み取ります[] children = dir.list(); //ディレクトリ内のサブディレクトリを再帰的に削除します(int i = 0; i <children.length; i ++){// file f = new file(string parent、string child)//親抽象パス名はディレクトリを表すために使用されます。 //ファイルパスはファイルパスとまったく同じです。 boolean isdelete = deletedir(new file(dir、children [i])); //削除すると削除するものがなく、isdelete == falseが削除されない場合、再帰がポップアップされます(!isdelete){return false; }}} //読んだのはファイルまたは空のディレクトリである場合、return dir.delete(); }したがって、これはメソッド全体が接続されている方法であり、ディスクCの下にあるフォルダーとすべてのサブファイルとサブフォルダーをディスクFに移動し、名前を変更します。
java.io.*をインポートします。 public class cuttest {//ディレクトリおよびディレクトリ内のすべてのサブディレクトリとファイルを削除しますpublic static boolean deletedir(file dir){//フォルダーの場合はif(dir.isdirectory()){//そのフォルダー文字列のすべてのファイルを読み取る[] children = dir.list(); //ディレクトリ内のサブディレクトリを再帰的に削除します(int i = 0; i <children.length; i ++){// file f = new file(string parent、string child)//親抽象パス名はディレクトリを表すために使用されます。 //接続されているのは、ファイルパスブールイスデレテ= deletedir(new file(dir、children [i])); //削除すると削除するものが何もない場合、isdelete == falseを削除すると、(!isdelete){return false; }}} //ファイルまたは空のディレクトリを読む場合、return dir.delete(); } //特定のディレクトリとディレクトリ内のすべてのサブディレクトリとファイルを新しいフォルダーにコピーしますpublic static void copyfolder(string oldpath、string newpath){//フォルダーが存在しない場合は、新しいフォルダー(new)ファイル(new)ファイル(newPath))を作成します。 //フォルダー全体の内容をファイル文字列アレイに読み取り、下にカーソルIを設定し、下向きに移動して配列ファイルfileList = newファイル(OldPath)の読み取りを開始します。 string [] file = fileList.list(); //この温度は単なる一時的なファイルポインターであることに注意してください//プログラム全体が一時ファイルのtemp = nullを作成しません。 for(int i = 0; i <file.length; i ++){// oldpathがパスセパレーター/または/で終了した場合、oldpath/file nameが正常である場合、それ以外の場合は、oldpathの後にパスセパレーターを追加し、渡されたパラメーターがf:/aまたはf:/a/? if(oldpath.endswith(file.separator)){temp = new file(oldpath + file [i]); } else {temp = new file(oldpath + file.separator + file [i]); } //カーソルがファイルを遭遇する場合if(temp.isfile()){fileinputStream input = new fileInputStream(temp); // fileoutputStream output = new fileoutputStream(newPath + " +" rename_ " +(temp.getName())。toString())); byte [] bufferArray = new byte [1024 * 64]; int prereadlength; while((prereadlength = input.read(bufferArray))!= -1){output.write(bufferArray、0、prereadlength); } output.flush(); output.close(); input.close(); } //カーソルがフォルダーに遭遇する場合if(temp.isdirectory()){copyfolder(oldpath + "/" + file [i]、newpath + "/" + file [i]); }}} catch(Exception e){system.out.println( "フォルダーコンテンツ全体をコピーする際のエラー"); }} public static void movefolder(string oldpath、string newpath){//ファイルをコピーするfirst copyfolder(oldpath、newpath); // deletedir(新しいファイル(oldpath))を混乱させないように、ソースファイルを削除します。 } public static void main(string [] args){movefolder( "c:/a"、 "f:/b"); }}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。