Em Java, há uma maneira simples de ilustrar o seguinte:
public static void MoveFolder (String OldPath, String newPath) {// Copie o arquivo CopyFolder (OldPath, NewPath); // exclua o arquivo de origem para evitar confundir o Deletedir (novo arquivo (antigo)); } Os arquivos não devem ser cortados diretamente para evitar erros durante o corte, resultando em problemas de um tipo ou de outro.
As pastas de copiagem e todos os subfiles e subfolações do Java foram explicados em detalhes no artigo "[Java] usa os fluxos de entrada e saída de arquivos para concluir a operação de copiar todos os arquivos em uma pasta e outra pasta" (clique para abrir o link).
A chave é excluir pastas, seus subfiles e subpastas.
Em Java, o método delete () da classe de arquivo pode excluir apenas pastas vazias ou arquivos únicos. Portanto, é necessário atravessar a pasta inteira, começar com os arquivos na pasta mais interna e executar a exclusão recursiva. O método específico é o seguinte:
// Exclua todos os subdiretos e arquivos em um diretório e diretório public estático booleano Deletedir (arquivo de arquivo) {// se for uma pasta if (dir.isDirectory ()) {// Leia todos os arquivos nessa pasta string [] crianças = dir.List (); // Exclua recursivamente os subdiretos no diretório para (int i = 0; i <children.length; i ++) {// arquivo f = novo arquivo (string pai, string filho) // o nome do caminho abstrato dos pais é usado para representar diretórios, e o nome do caminho da criança é usado para representar diretórios ou arquivos. // O caminho do arquivo é exatamente o mesmo que o caminho do arquivo. boolean isDelete = Deletedir (novo arquivo (dir, crianças [i])); // Se você o excluir e não houver nada para excluí -lo, e isDelete == FALSE, a recursão será exibida se (! ISDELETE) {return false; }}} // O que você lê é um arquivo ou um diretório vazio, você pode excluir diretamente o retorno dir.Delete (); } Portanto, é assim que todo o método é conectado, mova a pasta A e todos os subfiles e subfilidades no disco C para o disco f e renomeie -o:
importar java.io.*; public class Cuttest {// Exclua todos os subdiretos e arquivos em um diretório e diretório public estático booleano Deletedir (arquivo dir) {// se for uma pasta if (dir.isdirectory ()) {// leia todos os arquivos nessa pasta string [] childre = dir.list (); // Exclua recursivamente os subdiretos no diretório para (int i = 0; i <children.length; i ++) {// arquivo f = novo arquivo (string pai, string filho) // o nome do caminho abstrato dos pais é usado para representar diretórios, e o nome do caminho da criança é usado para representar diretórios ou arquivos. // conectado juntos é o caminho do arquivo boolean iSDelete = Deletedir (novo arquivo (dir, crianças [i])); // Se você o excluir e não houver nada para excluí -lo, e IsDelete == FALSE, salte recursivamente para fora deste tempo se (! ISDELETE) {return false; }}} // Se você ler um arquivo ou um diretório vazio, poderá excluir diretamente o retorno dir.Delete (); } // Copie todos os subdiretos e arquivos em um determinado diretório e diretório para a nova pasta public static void copyFolder (string oldPath, string newpath) {try {// se a pasta não existir, crie um novo arquivo (new) (newPath)). Mkdirs (); // Leia o conteúdo de toda a pasta para a matriz da string de arquivo, defina um cursor que eu abaixo e mova -o para baixo para começar a ler o arquivo de matriz filelElist = new File (OldPath); String [] arquivo = filelist.list (); // Observe que esta temperatura é apenas um ponteiro de arquivo temporário // o programa inteiro não cria um arquivo temporário temp = null; para (int i = 0; i <file.length; i ++) {// Se o antigo caminho termina com um separador de caminho/ou/, então o nome da pista antiga/arquivo ficará bem // caso contrário, adicione um separador de caminho após o OldPath e adicione um nome de arquivo // quem sabe se o parâmetro que você passou é f:/a ou f:/a/? if (OldPath.endSwith (file.separator)) {temp = new File (OldPath + File [i]); } else {temp = new File (OldPath + file.separator + arquivo [i]); } // Se o cursor encontrar um arquivo se (temp.isfile ()) {FileInputStream input = new FileInputStream (temp); // copiar e renomear fileOutputStream output = new FileOutputStream (newPath + "/" + "rename_" + (temp.getName ()). Tostring ()); byte [] bufferArray = novo byte [1024 * 64]; int prereadLength; while ((prereadLength = input.read (bufferArray))! = -1) {output.write (bufferArray, 0, prereadLength); } output.flush (); output.Close (); input.Close (); } // Se o cursor encontrar uma pasta if (temp.isdirectory ()) {copyFolder (antigo e "/" + arquivo [i], newPath + "/" + arquivo [i]); }}} catch (Exceção e) {System.out.println ("Erro ao copiar o conteúdo inteiro da pasta"); }} public static void moveFolder (string OldPath, string newPath) {// copie o arquivo First CopyFolder (OldPath, newPath); // exclua o arquivo de origem para evitar confundir o Deletedir (novo arquivo (antigo)); } public static void main (string [] args) {moveFolder ("c:/a", "f:/b"); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.