用java實現的文件夾復制與刪除的程序

javap 9年前發布 | 636 次閱讀 Java

          private void deleteFile(File file) {
if (file.exists()) { // 判斷文件是否存在
if (file.isFile()) { // 判斷是否是文件
file.delete(); // delete()方法 你應該知道 是刪除的意思;
} else if (file.isDirectory()) { // 否則如果它是一個目錄
File files[] = file.listFiles(); // 聲明目錄下所有的文件 files[];
for (int i = 0; i < files.length; i++) { // 遍歷目錄下所有的文件
this.deleteFile(files[i]); // 把每個文件 用這個方法進行迭代
}
}
file.delete();
} else {
System.out.println("所刪除的文件不存在!" + '\n');
}
}

// 復制文件  
public static void copyFile(File sourceFile, File targetFile)  
        throws IOException {  
    // 新建文件輸入流并對它進行緩沖  
    FileInputStream input = new FileInputStream(sourceFile);  
    BufferedInputStream inBuff = new BufferedInputStream(input);  

    // 新建文件輸出流并對它進行緩沖  
    FileOutputStream output = new FileOutputStream(targetFile);  
    BufferedOutputStream outBuff = new BufferedOutputStream(output);  

    // 緩沖數組  
    byte[] b = new byte[1024 * 5];  
    int len;  
    while ((len = inBuff.read(b)) != -1) {  
        outBuff.write(b, 0, len);  
    }  
    // 刷新此緩沖的輸出流  
    outBuff.flush();  

    // 關閉流  
    inBuff.close();  
    outBuff.close();  
    output.close();  
    input.close();  
}  

// 復制文件夾  
public static void copyDirectiory(String sourceDir, String targetDir)  
        throws IOException {  
    // 新建目標目錄  
    (new File(targetDir)).mkdirs();  
    // 獲取源文件夾當前下的文件或目錄  
    File[] file = (new File(sourceDir)).listFiles();  
    if (file != null) {  

        for (int i = 0; i < file.length; i++) {  
            if (file[i].isFile()) {  
                // 源文件  
                File sourceFile = file[i];  
                // 目標文件  
                File targetFile = new File(  
                        new File(targetDir).getAbsolutePath()  
                                + File.separator + file[i].getName());  
                copyFile(sourceFile, targetFile);  
            }  
            if (file[i].isDirectory()) {  
                // 準備復制的源文件夾  
                String dir1 = sourceDir + "/" + file[i].getName();  
                // 準備復制的目標文件夾  
                String dir2 = targetDir + "/" + file[i].getName();  
                copyDirectiory(dir1, dir2);  
            }  
        }  
    }  
}  </pre> 


 本文由用戶 javap 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!