В Java есть простой способ проиллюстрировать следующее:
public static void перемещение (String OldPath, String newpath) {// Копировать файл copyFolder (OldPath, NewPath); // удалить исходный файл, чтобы избежать запутанного deletEdir (новый файл (OldPath)); } Файлы не должны быть вырезаны непосредственно, чтобы предотвратить ошибки во время резки, что приводит к проблемам того или иного рода.
Копирование папок и всех подфиллов и подпапок в Java было подробно объяснено в статье «[Java] использует входные и выходные потоки файла для завершения операции копирования всех файлов в одной папке и другой папке» (нажмите, чтобы открыть ссылку).
Ключ - удалить папки, их подфилы и подпапки.
В Java метод delete () класса файла может удалять только пустые папки или отдельные файлы. Следовательно, необходимо пройти всю папку, начать с файлов в внутренней папке и выполнить рекурсивную удаление. Конкретный метод заключается в следующем:
// Удалить все подкаталоги и файлы в каталоге и каталоге Public Static Boolean leletedir (файл dir) {// Если это папка if (dir.isdirectory ()) {// Прочитайте все файлы в этой String папке [] kids = dir.list (); // Рекурсивно удалять подкаталы в каталоге для (int i = 0; i <kings.length; i ++) {// file f = new File (String Parent, String Child) // Имя родителей абстрактного пути используется для представления каталогов, а строка имени дочернего пути используется для представления каталогов или файлов. // Путь файла точно такой же, как и путь файла. Boolean isDelete = deletEdir (новый файл (dir, kids [i])); // Если вы удалите его и нечего удалить его, и iSdelete == false, то рекурсия появится, если (! ISdelete) {return false; }}} // То, что вы прочитаете, является файлом или пустым каталогом, вы можете напрямую удалить return dir.delete (); } Следовательно, так подключен весь метод, переместите папку A и все подфилы и подпапки на диске C на диск F и переименуйте ее:
импортировать java.io.*; открытый класс Cuttest {// Удалить все подказки и файлы в каталоге и каталоге Public Static Boolean DeletEdIr (файл dir) {// Если это папка if (dir.isdirectory ()) {// Читать все файлы в этой папке [] kids = dir.list (); // Рекурсивно удалять подкаталы в каталоге для (int i = 0; i <kings.length; i ++) {// file f = new File (String Parent, String Child) // Имя родителей абстрактного пути используется для представления каталогов, а строка имени дочернего пути используется для представления каталогов или файлов. // Вместе подключено пуль с файлом boolean isDelete = deletEdir (новый файл (dir, kids [i])); // Если вы удалите его и нечего удалить его, и iSdelete == false, то рекурсивно выпрыгните из этого времени, если (! ISdelete) {return false; }}} // Если вы читаете файл или пустой каталог, вы можете напрямую удалить return dir.delete (); } // Скопируйте все подкаталоги и файлы в определенном каталоге и каталоге в новую папку Public Static Void CopyFolder (String OldPath, String newpath) {try {// Если папка не существует, создайте новую папку (новый) файл (newpath)). Mkdirs (); // Прочитайте содержимое всей папки в массив строковых файлов, установите курсор I ниже и переместите его вниз, чтобы начать читать файл массива FileList = новый файл (OldPath); String [] file = fileList.list (); // Обратите внимание, что эта температура является просто временным указателем файла // Вся программа не создает временного файла файла temp = null; для (int i = 0; i <file.length; i ++) {// Если OldPath заканчивается сепаратором пути/или/, тогда letpath/имя файла хорошо // в противном случае добавьте разделитель пути после OldPath и добавьте имя файла // Кто знает, является ли параметр, который вы передали:/a или f:/a/? if (oldpath.endswith (file.separator)) {temp = new File (OldPath + file [i]); } else {temp = новый файл (oldpath + file.separator + file [i]); } // Если курсор встречается с файлом if (temp.ishile ()) {fileInputStream input = new FileInputStream (temp); // Копировать и переименовать fileOutputStream output = new FileOutputStream (newPath + "/" + "rename_" + (temp.getName ()). ToString ()); byte [] bufferarray = новый байт [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 перемещение (String OldPath, String newpath) {// Копировать файл First CopyFolder (OldPath, NewPath); // удалить исходный файл, чтобы избежать запутанного deletEdir (новый файл (OldPath)); } public static void main (string [] args) {перемещение ("c:/a", "f:/b"); }}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.