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

如何判断不确定扩展名的文件是否存在,急…………请帮忙
我利用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也可以调用该服务