Delphi 递归搜索.SVN文件夹并“处理”

时间:2023-12-23 08:43:08
实在是没有想到删除.SVN文件夹是件这么痛苦的事情,最近在整理公司历史资料文件,粗略统计一下600G左右,本想一次提交到服务器上省事,没想到啊没想到,传输中途程序崩掉了,本地文件夹剩下一大堆.svn文件夹。服务器上鉴于原子性什么也没有传上去,还消耗了一大堆空间,打算重新做!准备用系统的查找删除,Win7那个搜索太操蛋了,不能指定类型,时间段,而且整个过程慢——搜索慢、选择慢、执行命令前整理慢。忍无可忍,找相关能指定文件夹删除的工具基本没有,写代码了(未作测试)。
国庆下班了,节后在试  

Delphi 递归搜索.SVN文件夹并“处理”procedure

 delAllSVN(path: string);

var

  SearchRec: TSearchRec;
found: integer;
vFileName: string;

begin

  found := FindFirst(path + '*.*', faAnyFile, SearchRec);
while found = 0 do

begin

    vFileName := LowerCase(SearchRec.name);
if (vFileName <> '.') and (vFileName <> '..') and
((SearchRec.attr and faDirectory) <> 0) then

begin

      if vFileName <> '.svn' 

then

        SearchFile(IncludeTrailingPathDelimiter(SearchRec.name))
else
delDirectory(vFileName);

end

    else
    

begin

      // do Other things.....
    

end

;
found := FindNext(SearchRec);

end

;
FindClose(SearchRec);

end

;

后注:svn 1.8 版本对文件夹标记作了升级,仅仅在主文件夹下建一个 .svn 文件夹,子目录下就不会在出现.svn 文件夹了(估计是这样的,没有系研究)。

删除目录用的是 http://www.cnblogs.com/hieroly/archive/2012/02/05/2339288.html