用Python脚本自动删除VC项目目录下临时文件

当然,也可以用批处理或C++本身控制台程序完成;但综合比较了下,觉得python比较方便些,引用别人的劳动成果,如下:

VC在编译时会自动生成一些临时文件,比如obj,pch等。当项目版本比较多的时候,这些文件在Debug和Release目录下占据了很大的空间。当然可以选择手工清理,不过考虑到这些文件是分散在不同的目录下,而且数量比较多,所以手工清理还是有些麻烦。于我写了一个简单的 Python 脚本来自动完成这一任务。下面这段代码扫描D盘下的所有目录,并删除目录下的有关临时文件:

 1 from os.path import walk, join, normpath
 2 from os import chdir, remove
 3 
 4 def scan(arg, dirname, names)
 5   for file in names:
 6     if file[-4:]==".obj" or file[-4:]==".pch":
 7       files = normpath(join(dirname,file))
 8       chdir(dirname)
 9       print "deleting", files
10       remove(file)
11       print "done!"
12 
13 if __name__== "__main__":    
14   path = chdir('d:\\\\')
15   walk(path, scan, 0)


对以上代码的简单分析和解释:

    基本的想法是利用脚本对各个目录进行扫描,对目录下每一个文件进行判断,如果是VC生成的临时文件就删除掉。
VC临时文件名都有一定的特征,比如编译中间文件是obj,预编译头文件是pch。这些特征是判断一个文件是否应该被删除的依据。
    walk(path, scan, 0) 是一个 Python 的内置函数。用来遍历目录 path。显而易见借助于 Python 提供的这个函数,扫描目录的工作比较轻松地完成了,从而使编程的难度降低许多,避免自己编写递归扫描函数。
    最后要说明的一点是,删除某个文件时要知道它的绝对路径而且要在那个文件的所在目录下进行,否则 Python 会提示找不到要处理的文件。用normpath到了文件的绝对路径,chdir(dirname) 则把当前的目录变成要删除文件的所在目录。 

FROM:http://www.cnblogs.com/zhengllg/archive/2009/07/26/1531518.html

当然咯,用批处理也行:

FROM:http://blog.csdn.net/dengniancai/archive/2008/09/22/2963458.aspx

1. 目的:
   如果你要将程序上传到 svn , 或者压缩备份, 或者打包发给别人, 如果不删除临时    
   文件, 文件夹(或压缩文件)会很大. 但是工程每经过一次打开,编译, 就会重新产生    
   这些临时文件. 要删除这些临时文件, 必将浪费一些时间, 如果没有经验, 又怕会     
   误删一些文件. 所以利用周末的一点时间写了一个批处理脚本, 希望大家试用, 并     
   能提出宝贵的建议和意见.

2. 试用范围:
   这两个文件适合 Visual Studio 6.0 和 Visual Studio 2003 可能不会适合      
   Visual Studio 2005. 根据你的需要, 将这两个文件中的一个放入与 Debug 和        
   Release 同一目录下.

3. 文件说明:
   (1) 删除工程 temp (包括 Release ).cmd 文件中的内容
  rd Debug /s/q
 rd Release /s/q
 del *.suo /s /a:h
 del *.ncb /s
 del *.aps /s
 del *.opt /s
 del *.plg /s
 del *.clw /s
 del *.~* /s
 pause
 del *.cmd /s
  删除了 Debug ,Release 文件夹, 及后缀为 .suo, .ncb, .aps, .opt, .plg, .clw, 
  .~* 的文件. 按任意键后会删除批处理脚本文件, 如果你想反复使用这个批处理文件   
  , 可以将最后一句话删除.

  (2) 删除工程 temp (保留 Release 中的 EXE ).cmd 文件中的内容
 rd Debug /s/q
 del Release\*.res /s
 del Release\*.htm /s
 del Release\*.obj /s
 del Release\*.pch /s
 del Release\*.pdb /s
 del Release\*.idb /s
 del *.suo /s /a:h
 del *.ncb /s
 del *.aps /s
 del *.opt /s
 del *.plg /s
 del *.clw /s
 del *.~* /s
 pause
 del *.cmd /s
   删除了 Debug, Release 文件夹, Release 文件夹中的临时文件, 及后缀为.suo,      
   .ncb, .aps, .opt, .plg, .clw, .~* 的文件.
   这种方法可以使别人没有编译环境也能运行你的程序.

(3) 删除工程临时文件.cmd

删除你代码文件夹下所有的临时文件:

del *.res /s
del *.htm /s
del *.obj /s
del *.pch /s
del *.pdb /s
del *.idb /s
del *.exp /s

del *.tli /s
del *.tlh /s
del *.ilk /s
del *.pch /s

del *.suo /s /a:h
del *.ncb /s
del *.aps /s
del *.opt /s
del *.plg /s
del *.clw /s
del *.~* /s
pause

5. 忠告: 
   (1) 要将批处理脚本文件放在适当的位置执行;
   (2) 没有把握不要修改批处理脚本中的内容;
   (3) 如果有把握, 可以自己改动文件中的内容来达到更好的删除临时文件的目的.

原文地址:https://www.cnblogs.com/dartagnan/p/2003606.html