.DS_Store (英文全称 Desktop Services Store)是一种由苹果公司的Mac OS X操作系统所创造的隐藏文件,目的在于存贮文件夹的自定义属性,例如文件们的图标位置或者是背景色的选择。——见维基百科
有的时候,.DS_Store让人觉得特别麻烦,比如压缩文件或者采用版本控制软件如svn和git的时候,因此写了一段代码递归删除.DS_Store文件,小弟是编程初手,这里的代码只是第一版,请大家多多指教。
python版本:
#!/usr/bin/env python
importos,sys;
defwalk(path):
PRint"cd directory:"+path
foriteminos.listdir(path):
try:
if(item==".DS_Store"):
globalcount
count=count+1
print" find file .Ds_Store"
os.remove(path+"/"+item)
else:
if(os.path.isdir(path+"/"+item)):
print" "+path+"/"+item+" is directory"
walk(path+"/"+item)
else:
print" "+path+"/"+item+" is file"
exceptOSError,e:
printe
if__name__=='__main__':
count=0
if(len(sys.argv)>1):
root_dir=sys.argv[1]
else:
root_dir=os.getcwd()
walk(root_dir)
print"\ntotal number:"+str(count)
go语言版本:
packagemain
import(
"flag"
"fmt"
"os"
"path/filepath"
)
funcgetFilelist(pathstring)int{
count:=0
err:=filepath.Walk(path,func(pathstring,fos.FileInfo,errerror)error{
iff==nil{
returnerr
}
iff.IsDir(){
fmt.Printf("cd directry %s\n",path)
returnnil
}
iff.Name()==".DS_Store"{
count++
println(" "+f.Name()+" is deleted")
os.Remove(path)
}
returnnil
})
iferr!=nil{
fmt.Printf("filepath.Walk() returned %v\n",err)
}
returncount
}
funcmain(){
flag.Parse()
root:=flag.Arg(0)
count:=0
ifroot==""{
crurrent_dir,_:=filepath.Abs(".")
count=getFilelist(crurrent_dir)
}else{
count=getFilelist(root)
}
fmt.Printf("\n\n total number:%d\n",count)
}
最后,这是第一篇博客,不知道如何使用博客园的代码编辑器,求指教呀