1. 程式人生 > >檔案的建立與刪除

檔案的建立與刪除

/**
 * 要求使用者輸入一個檔名並使用File在當前目錄下創建出來。
 * 若該檔案已經存在,則提示使用者該檔案已經存在。並建立該檔案副本:
 * 例如:使用者輸入"test.txt".若該檔案已存在,提示使用者存在後,建立名為:test_副本1.txt 的檔案
 * 若該檔案也存在了,則建立名為:test_副本2.txt 的檔案,以此類推
 * @author Xiloer
 *
 */

程式碼如下:

public class Test02 {
	public static void main(String[] args) throws IOException {
		Scanner scan = new Scanner(System.in);
		System.out.println("請輸入檔名:");
		String input = scan.nextLine().trim();
		File file = new File("test.txt");
		boolean flag = file.exists();
		if(!flag){//若不存在
			file.createNewFile();
		}else{
			int index = 0; 
			while(flag){
				index++;
				file = new File("test_副本"+index+".txt");
				flag = file.exists();
			}
			file.createNewFile();
		}
		System.out.println("檔名:"+file.getName());
	}
}

刪除檔案操作

要求:要求使用者輸入一個檔案或目錄名,若為檔案則刪除,若為目錄(目錄中可能有其他檔案或目錄)也刪除

程式碼如下:

public class Test05 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		System.out.println("請輸入檔案或目錄名字:");
		String input = scan.nextLine().trim();//接收名字
		File file = new File(input);
		if(!file.exists()){//要刪除的檔案或目錄是否存在
			System.out.println("目錄或檔案不存在");
			return;
		}
		deleteFile(file);
	}
	//遍歷過程中,元素為檔案則刪除,元素為有內容目錄則繼續遍歷,
	//元素為空目錄則執行if後,不會執行for迴圈,但要執行刪除語句,將空目錄刪除,遞迴刪除以上所有
	public static void deleteFile(File file){
		//如果是目錄,需要先刪除當前目錄下的所有子項
		if(file.isDirectory()){
			for(File f : file.listFiles()){//遍歷子目錄
				deleteFile(f);
			}
		}
		file.delete();//必定執行的語句
	}
}