1. 程式人生 > >linux 遞迴刪除多級目錄

linux 遞迴刪除多級目錄

程式碼如下:

#include<sys/stat.h>
int CParseJson::emptyDir(const char* destDir)
{
	int ret = 0;
	DIR* dp = NULL;
	struct dirent* entry = NULL;
	struct stat statbuf;
	
	if ((dp = opendir(destDir)) == NULL)
	{
		LOG4CXX_ERROR(logger, "cannot open directory, errno = "<<errno);
		return 2;
	}
	
	while ((entry = readdir(dp)) != NULL)
	{
		if("." == string(entry->d_name) || ".." == string(entry->d_name))
		{
			continue;
		}
		
		string dirT = string(destDir) + "/" + string(entry->d_name);
		lstat(dirT.c_str(), &statbuf);
		//if (!S_ISREG(statbuf.st_mode))
		if(!(statbuf.st_mode & S_IFDIR))
		{
			string temp = string(destDir) + "/" + string(entry->d_name);
			ret = remove(temp.c_str());
			if(ret)
			{
				LOG4CXX_ERROR(logger, "remove file fail, errno = "<<errno);
				closedir(dp);
				dp = NULL;
				return ret;
			}		
		}
		else
		{
			emptyDir(dirT.c_str());
		}
	}
	closedir(dp);
	dp = NULL;
	
	ret = remove(destDir);
	if(ret)
	{
		LOG4CXX_ERROR(logger, "remove dir fail, destDir = "<<destDir);
	}
	return ret;
}


相關推薦

linux 刪除多級目錄

程式碼如下: #include<sys/stat.h> int CParseJson::emptyDir(const char* destDir) { int ret = 0; DIR

用java8實現6行程式碼搞定刪除多級非空目錄

在review 程式碼的時候,看到同事寫的程式碼刪除多級非空目錄,寫的很長一串,太複雜,就自己寫了一個,分享給大家: package com.test.java8; import java.io.File; import java.util.Arrays; import java.uti

刪除多級資料夾及檔案

實現刪除某個目錄刪除及該目錄裡面所有的子檔案和資料夾的功能 整體思路: * 檔案存在 * 是檔案 –直接呼叫delete刪除 * 是資料夾–接收資料夾下fil

linux強行刪除目錄和檔案

在linux中刪除一個目錄很簡單,使用rm -rf命令即可解決。 直接rm就可以了,不過要加兩個引數-rf 即:rm -rf 目錄名字 -r 就是向下遞迴,不管有多少級目錄,一併刪除 -f 就是直接強行刪除,不作任何提示的意思 刪除資料夾例項:rm

[轉]linux刪除某個檔案或者目錄

linux命令:遞迴刪除某個檔案或目錄,拷貝時排除某個目錄 一、linux下有時候會有一些檔案,想遞迴全刪除,比如.svn目錄,*.o檔案等。 具體命令如下: 1. 遞迴刪除所有的output目錄: find  .  -name  'output'  -ty

PyCharm檔案刪除後提示檔案找不到:刪除目錄下pyc檔案

PyCharm程式碼刪除後,會提示檔案找不到,這是由於.pyc 位元組碼檔案沒有刪除,執行的是之前的程式碼編譯好的*.pyc 位元組碼檔案 解決辦法: 刪除*.pyc 檔案 刪除當前目錄下.pyc檔案 $ rm -rf "*.pyc" 遞迴刪除目錄下.pyc檔案

使用Java語言刪除目錄下面產生的臨時檔案

背景:專案copy的過程中,在專案的目錄資料夾下面都產生了一個固定的檔案,很是討厭。手動刪除的話比較費力,所以寫了一個簡單的Java程式去刪除: public static void main(String[] args) { File dir = new File("/yourOwn

linux運維-python遍歷目錄+案例應用

一、python中walk()方法遍歷目錄基本使用 1、walk()方法的基本語法 os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) top -- 是你所要遍歷的目錄的地址. topdown -- 可選,為 Tr

刪除非空資料夾(目錄)

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

java刪除目錄下所有內容

java遞迴刪除目錄下所有內容  private static boolean deleteDir(File dir) {if (dir.isDirectory()) {        String[] children = dir.list

java IO 用刪除目錄

package delectDemo1; import java.io.File; import java.io.IOException; /* * 用遞迴刪除資料夾 */ public class DelectFolder { public static vo

C# 檔案操作 全收錄 追加、拷貝、刪除、移動檔案、建立目錄刪除

內容如下:C#追加、拷貝、刪除、移動檔案、建立目錄、遞迴刪除資料夾及檔案、指定資料夾下面的所有內容copy到目標資料夾下面、指定資料夾下面的所有內容Detele、讀取文字檔案、獲取檔案列表、讀取日誌檔案、寫入日誌檔案、建立HTML 檔案、CreateDirectory方法的使用C#追加檔案     Strea

Linux C++ 刪除資料夾下所以內容

#include <dirent.h> void delete_path(const char* path){ __android_log_print(ANDROID_LOG_IN

node js 刪除 檔案, 目錄

var fs = require(‘fs’); var rootFile = ‘e:/luo/dist’; //要刪除的資料夾 url //刪除所有的檔案(將所有資料夾置空) var emptyDir = function(fileUrl) {

shell刪除檔案或者目錄

shell遞迴刪除指定字串檔案或者目錄: 1、檔案: find . -name "*.rej" | xargs rm -rf 2、目錄: find . -type d -name "*.rej" | xargs rm -rf

linux查詢某目錄下所有檔案包含某字串的命令

linux下查詢某目錄下所有檔案包含某字串的命令: 從檔案內容查詢匹配指定字串的行: $ grep "被查詢的字串" 檔名 從檔案內容查詢與正則表示式匹配的行: $ grep –e “正則表示式” 檔名 查詢時不區分大小寫: $ grep –i "被查詢的字串"

linux刪除資料夾,簡單實現rm的功能

/*******************myrm.c 閫掑綊鐨勫垹闄や竴涓洰褰曘€?*鏉ㄥ環鍚?2009.4.8*淇敼錛?*******************/ #include<stdio.h>#include<stdlib.h>#includ

Java刪除目錄目錄下的檔案

我們知道File.delete()用於刪除“某個檔案或者空目錄”!所以要刪除某個目錄及其中的所有檔案和子目錄,要進行遞迴刪除,具體程式碼示例如下: /** * 遞迴刪除目錄下的所有檔案及

遍歷目錄下所有資料夾和檔案-------刪除空目錄

遍歷資料夾下所有檔案有兩種方法備註p為列印函式相當於print_r(),var_dump()的友好輸出第一種://遍歷資料夾下所有檔案和目錄//opendir():將目錄下的檔案已資源的形式儲存 //r

java刪除資料夾demo,刪除檔案目錄例子

private void deleteFile(File file) { if (file.exists()) {// 判斷檔案是否存在 if (file.is