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

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

posted @ 2013-10-01 01:50  海利鸟  阅读(910)  评论(0编辑  收藏  举报