日期:2014-05-17  浏览次数:20858 次

请教一个FSO删除文件的小问题
我要删除文件夹下的类似文件:
news6.htm
news6_1.htm
news6_3.htm
news6_8.htm

但是,文件夹里还有类似这样的:news61.htm、news62.htm 这些我不要删除。

下面我的代码删除不了news6_1.htm之类的。

if fso.FileExists(news6.html") then
fso.DeleteFile(news6.html")
end if
if fso.FileExists(news6_*.html") then
fso.DeleteFile(news6_*.html")
end if

我该怎样做才能呢。

------解决方案--------------------
fileexists参数不支持通配符,删除方法也不支持,只能遍历文件夹下的文件用正则匹配文件名然后删除

VBScript code
set fso=server.CreateObject("scripting.filesystemobject")
set folder=fso.GetFolder(server.MapPath("."))'============注意修改你的路径
set files=folder.files

set rx=new Regexp
rx.IgnoreCase=true
rx.Pattern="news6(_\d+)?\.htm"'==========正则
for each f in files
  if rx.Test(f.name) then  fso.DeleteFile f.path'匹配则删除
next


set rx=nothing
set files=nothing
set folder=nothing
set fso=nothing

------解决方案--------------------
我想楼主的文件,也并不一定都是以news6开头的吧。只是说以news开头,后面跟一个数字?

正如楼上所说的,要遍历文件夹,用正则删除。要不然的话,没办法取到文件名字的。不支持通配符。

楼上showbo的代码,稍改一下。

rx.Pattern="news(\d)(_\d+)?\.htm"'==========正则