C 遞迴方式刪除非空目錄資料夾

2021-06-13 14:38:43 字數 3276 閱讀 9561

#include

#include

#include

#include

#include

/
#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

方式一:

intdeldir(

const

char

*pdir

)

;

char

filename

[max_path]

=;

char

*str

="\\*.*"

;

strcpy(

dir,

pdir

);

strcat(

dir,

str);

//首先查詢dir中符合要求的檔案

long

hfile

;

_finddata_t

fileinfo

;

if((

hfile

=_findfirst(

dir,&

fileinfo

))!=-1

)

else

//處理目錄,遞迴呼叫

}

}while

(_findnext(

hfile

,&fileinfo)==

0);

_findclose(

hfile

);

rmdir(

pdir

);

return

1;

}

return-3

;

}
方式二:

void

myrmdir(

wstring

srmdir

)

;

//wcstombs(path,wpath,max_path);//將寬字元轉換成多字元

//mbstowcs(wpath,pdir,strlen(pdir));//把多字元把轉換成寬字元

queue

<

wstring

>

dirqueue;//

用於刪除檔案

stack

<

wstring

>

dirstack;//

用於刪除目錄

if(

srmdir

.at(

srmdir

.length()-1

)!='\\'

||

srmdir

.at(

srmdir

.length()-1

)!='/')

dirqueue

.push(

srmdir

);

dirstack

.push(

srmdir

);

//迴圈刪除

目錄中的檔案

while(!

dirqueue

.empty()

)

else

}

else

}

}while

(findnextfile(

hfind,&

win32finddata

));

if(

hfind

!=invalid_handle_value

)

}

//刪除目錄

while(!

dirstack

.empty()

)

}
int

main(

intargc

,char

*argv

)

;

bool

bret

=false

;

std::cout

<<

"please

wait

..."

;

myrmdir(

l"d:\\v"

);

deldir(

"d:\\project.keymanagerclient

-副本"

);

std::cout

<<

"ok"

;

return

0;

}

QT複製資料夾 刪除非空目錄

刪除非空資料夾 在windows測試,避開快捷方式 lnk 問題,支援屬性為隱藏或唯讀的檔案,其它未測試 bool global deletedir const qstring dirname qstringlist files directory.entrylist qdir allentries...

遞迴刪除非空資料夾

cstringlist g psldir null cstringlist g pslfile null void main 刪除資料夾 bool removedir cstring strdir return false 獲取系統目錄 char getpathname if getmodulefi...

Python遞迴刪除非空資料夾

主要就是利用遞迴思想,自己呼叫自己,建立乙個刪除資料夾的函式 傳入乙個資料夾 遍歷裡面所有的檔名 判斷 如果是檔案就直接刪除,如果遇見資料夾,就調本函式,將現在的資料夾傳給函式 在進行判斷 import os defdel dir dir name param dir name 要刪除的資料夾名字 ...