以前在javaeye看到過關於Java操作文件的一篇文章,寫的很好,但找了半天也沒找到,就把找到底幾篇文章整理一下,做個總結,算是一個學習備份……
1,驗證傳入路徑是否爲正確的路徑名(Windows系統,其他系統未使用)
- // 驗證字符串是否爲正確路徑名的正則表達式
- private static String matches = "[A-Za-z]:\\\\[^:?\"><*]*";
- // 通過 sPath.matches(matches) 方法的返回值判斷是否正確
- // sPath 爲路徑字符串
2,通用的文件夾或文件刪除方法,直接調用此方法,即可實現刪除文件夾或文件,包括文件夾下的所有文件
- /**
- * 根據路徑刪除指定的目錄或文件,無論存在與否
- *@param sPath 要刪除的目錄或文件
- *@return 刪除成功返回 true,否則返回 false。
- */
- public boolean DeleteFolder(String sPath) {
- flag = false;
- file = new File(sPath);
- // 判斷目錄或文件是否存在
- if (!file.exists()) { // 不存在返回 false
- return flag;
- } else {
- // 判斷是否爲文件
- if (file.isFile()) { // 爲文件時調用刪除文件方法
- return deleteFile(sPath);
- } else { // 爲目錄時調用刪除目錄方法
- return deleteDirectory(sPath);
- }
- }
- }
3,實現刪除文件的方法,
- /**
- * 刪除單個文件
- * @param sPath 被刪除文件的文件名
- * @return 單個文件刪除成功返回true,否則返回false
- */
- public boolean deleteFile(String sPath) {
- flag = false;
- file = new File(sPath);
- // 路徑爲文件且不爲空則進行刪除
- if (file.isFile() && file.exists()) {
- file.delete();
- flag = true;
- }
- return flag;
- }
4,實現刪除文件夾的方法,
- /**
- * 刪除目錄(文件夾)以及目錄下的文件
- * @param sPath 被刪除目錄的文件路徑
- * @return 目錄刪除成功返回true,否則返回false
- */
- public boolean deleteDirectory(String sPath) {
- //如果sPath不以文件分隔符結尾,自動添加文件分隔符
- if (!sPath.endsWith(File.separator)) {
- sPath = sPath + File.separator;
- }
- File dirFile = new File(sPath);
- //如果dir對應的文件不存在,或者不是一個目錄,則退出
- if (!dirFile.exists() || !dirFile.isDirectory()) {
- return false;
- }
- flag = true;
- //刪除文件夾下的所有文件(包括子目錄)
- File[] files = dirFile.listFiles();
- for (int i = 0; i < files.length; i++) {
- //刪除子文件
- if (files[i].isFile()) {
- flag = deleteFile(files[i].getAbsolutePath());
- if (!flag) break;
- } //刪除子目錄
- else {
- flag = deleteDirectory(files[i].getAbsolutePath());
- if (!flag) break;
- }
- }
- if (!flag) return false;
- //刪除當前目錄
- if (dirFile.delete()) {
- return true;
- } else {
- return false;
- }
- }
5,main() 方法
- public static void main(String[] args) {
- HandleFileClass hfc = new HandleFileClass();
- String path = "D:\\Abc\\123\\Ab1";
- boolean result = hfc.CreateFolder(path);
- System.out.println(result);
- path = "D:\\Abc\\124";
- result = hfc.DeleteFolder(path);
- System.out.println(result);
- }