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 @   海利鸟  阅读(911)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示