如何判断不确定扩展名的文件是否存在,急…………请帮忙
我利用FSO来做文件是否存在的判断时出现一个问题,就是假如有两个文件文件名相同,但是扩展名不同,但是我只要文件名相同就认为已存在需要覆盖,而不管扩展名是否相同,请问该怎么做。
比方说,文件夹中已经存在123.jpg这个文件,但是我要上传123.txt文件,然后就将原来的123.jpg删除,将123.txt上传,其中jpg和txt是不确定的。
------解决方案-------------------- 'ASP利用FSO判断文件是否存在
Set fso = CreateObject( "Scripting.FileSystemObject ")
If fso.FileExists(server.MapPath( "uploadFile/123.jpg ")) Then
response.write( "存在 ")
end if
Set fso = nothing
------解决方案--------------------应该可以判断出文件的类型吧。如果文件名相同类型不相同那么不覆盖。
我是想象的啊,不知道可不可以!!
------解决方案--------------------Dim fso
Dim File
Dim folder
Dim CurFileName
Dim i
CurFileName = "a "
Set fso = CreateObject( "Scripting.FileSystemobject ")
Set folder = fso.GetFolder(Server.MapPath( "f "))
Dim ary
ReDim ary(0)
For Each File In folder.Files
If File.Name = CurFileName Or Split(File.Name, ". ")(0) = CurFileName Then
ary(UBound(ary)) = File.Name
ReDim Preserve ary(UBound(ary) + 1)
End If
Next
For i = 0 To UBound(ary) - 1
'这里用fso删除文件
Next
------解决方案--------------------看到这个问题第一反应是通配符,第二反应是正则表达式,第三反应是window索引服务
看你怎么选了.
通配符:在fso中
方法:DeleteFile
语法:对象名.DeleteFile(文件名[,是否删除只读文件])
说明:删除指定文件,可以使用通配符,如果是否删除只读文件参数设置为TURE,则即便为只读属性也会被删除,默认值为FALSE。
从这里你可以看到,你其实根本不需要判断文件是否存在,直接使用通配符匹配就成
另一种通配符办法:调用wsh 使用dir来判断是否有同名
正则表达式:使用fso遍历目录+正则表达式来判断
window索引服务:索引服务支持文件查询和匹配,asp也可以调用该服务