1. 程式人生 > >遞迴刪除非空資料夾

遞迴刪除非空資料夾

<?php
	header('Content-type:text/html;charset=utf-8');

	/**
	* 遞迴刪除一個非空資料夾
	* @param string $fileName
	* @return bool 成功刪除ture|刪除失敗false
	*/ 
	function delFiles($fileName){

		// 如果檔案不存在 退出程式
		if(!file_exists($fileName)) return true;

		//如果不是目錄,直接刪除 
		if(!is_dir($fileName)){
			unlink($newFile);
			return true;
		}

		// 開啟控制代碼資源
		$handle = opendir($fileName);

		// 讀取.和..,過濾掉虛擬目錄 重要,如果不過濾會刪除伺服器所有檔案
		readdir($handle);
		readdir($handle);

		// 迴圈刪除
		while($file = readdir($handle)){
			$newFile = $fileName.'/'.$file;

			// 如果是目錄遞迴刪除
			if(is_dir($newFile)){
				if(!delFiles($newFile)) return false;
			}else{
				unlink($newFile);
			}
		}

		// 關閉控制代碼資源,重要,如果不關閉會造成程式佔用導致無法刪除該目錄 
		closedir($handle);

		// 刪除目錄
		if(!rmdir($fileName)) return false;
		return true;
	}

?>


相關推薦

刪除資料(目錄)

Java 對File類  提供了一個刪除檔案 delete(); 的方法 但是這個方法只對 檔案或者 空目錄有效,對非空目錄是無法進行刪除的 這個時候我們要 刪除非空目錄 可能就會用到 遞迴的方法: private static void delDirectory(File

刪除資料

<?php header('Content-type:text/html;charset=utf-8'); /** * 遞迴刪除一個非空資料夾 * @param string $fil

C# 將圖片匯出Excel(包括 建立Excel 、檔案壓縮、刪除檔案及資料)

新增引用 using ICSharpCode.SharpZipLib.Zip;   public void CreateDirectory(string DirectoryPath) { if (!Directory.Exist

jdk8刪除資料,拷貝自StackOverflow

import java.io.File; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Comparator

linuxC刪除某個資料

做usbcopy程式的時候,發現linux下除了刪除命令 rm -fr 目錄名  刪除某個非空資料夾,沒有直接可以刪除非空目錄的函式。 只好自己寫個函式實現遞迴刪除。(經有限次測試) int deletedir(char *fp)                      

MFC 中 刪除一個資料 (MFC 檔案操作 一)

      最近在看MFC 的檔案操作,從網上淘了一本比較講MFC檔案操作比較全的電子書,然後開始試手。在刪除資料夾時,遇到了問題,通過檢視MSDN和網友的論壇留言,自己總算是解決了這個問題,現在與大家共享。       MFC中提供了刪除資料夾的一個封裝函式 Remove

php刪除空目錄

                        &nbs

java:File類練習(統計該資料大小)

package com.heima.test; import java.io.File; import java.util.Scanner; public class Test1 { public static void main(String[] args) { File dir=

如何用CMD檢視Windows中資料結構 也叫做樹形結構!

CMD tree /? 就可以查詢用法! 程式碼如下: C:\>tree /? 以圖形顯示驅動器或路徑的資料夾結構。 TREE [drive:][path] [/F] [/A] /F 顯示每個資料夾中檔案的名稱。 /A 使用 ASCII 字元,而不使

javaSE (三十四)File類和練習(統計資料大小、拷貝資料、層級列印資料、斐波拉契數列、獲取1000階乘全部0和尾部0數目、約瑟夫環)

1、統計資料夾大小: 思路: 套用之前已經做過的,鍵入一個路徑,若有效則封裝成File類 初始化計數器len, 若資料夾下是檔案,則記錄檔案.length() 若資料夾下是資料夾,遞迴 輸出len 注:遞迴也可以刪除資料夾,但是一定要先刪除裡

遍歷某個資料及其所有子資料下的所有檔案

public class MyTest5 {     public static void main(String[] args) {         String rootDir = "G:"+File.se

Node.js使用實現遍歷資料中所有檔案

https://blog.csdn.net/younglao/article/details/77046830?locationNum=8&fps=1 版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/y

c#遍歷指定資料內的所有檔案(包含子資料

c#程式碼: public class DirectoryAllFiles { static List<FileInformation> FileList = n

PHP遍歷指定資料內的檔案

今天早上在地鐵上看了關於檔案和資料夾的一章,正好最近剛搞懂linux的檔案系統,覺得對檔案屬性的訪問跟Shell命令很像,所以想晚上來實踐一下。 發現php的資料夾函式好像沒有提供遍歷資料夾下的所有檔案(包括子目錄中的檔案),於是,就想自己實現一個。 在寫的

python程式2(查詢某一個資料下所有的檔案是否含有某個特定的字串,並列印該檔名)

#coding:utf-8 #author:yanjing #date:2016/12/16 #遞迴查詢某一個資料夾下所有的檔案是否含有某個特定的字串 import os import re import string #此函式的作用為遞迴查詢資料夾下所有的檔案 def d

java實現複製一個資料下所有檔案的功能

今天開始學習java的IO,學了一個複製檔案的例子程式後想自己實現以下如何複製一個資料夾,複製檔案的例子程式如下: package io.github.liuzhan214; import java.io.File; import java.io.IOEx

Java刪除資料

import java.io.File; public class ClearFile { static int iFile = 0; public static void main(String[] args) { // TODO Auto-generated method s

File-用刪除資料資料下可能有檔案或資料

利用遞迴演算法刪除某資料夾(包括其所有的子檔案及資料夾) import java.io.File; public class Dem01 { public static void main(String[] args) { File file = new F

Java刪除指定資料下所有檔案

Java遞迴刪除指定資料夾下所有檔案 工具類封裝 public class FileUtils{ public static boolean delAllFile(String path) { return delAllFile(new File(path)

python指令碼自動刪除資料指定型別檔案(附贈批量重新命名)

python指令碼自動刪除空資料夾和非指定型別檔案 直接上程式碼吧: # -*- coding: utf-8 -*- """ Created on Sun Sep 16 22:51:27 2018 @author: lele """ import