一些特殊的文件夹asp是没法完全显示出来的,但是可以通过unc路径去删除,但前提是得知道准确路径
这个目前还是有个别无法显示,翻了下msdn貌似没看到更好的解决方案,暂时放弃继续研究,有晓得完全解决的朋友不妨回复说一声。
先附bat创建畸形目录,以下代码复制另存为a.bat:
复制代码 代码如下:
md aux//
md com1//
md com2//
md prn//
md con//
md nul//
md dot...//
md onedot..//
程序代码
复制代码 代码如下:
< %@LANGUAGE="VBSCRIPT" CODEPAGE="65001"% >
< %
option explicit
response.charset = "UTF-8"
session.codepage = 65001
session.timeout = 1440
server.scripttimeout = 9999
'***************************
'名称:目录列表类
'作者:逸品
'日期:2010-4-28
'网址:
'描述:目录列表类,支持畸形目录名
'***************************
Class FsoCls
Private Fso
Public FsoObj
Private Sub Class_Initialize
Set Fso=CreateObject("Scripting.FileSystemObject")
Set FsoObj=Fso
End Sub
Private Sub Class_Terminate
Set Fso=Nothing
Set FsoObj=Nothing
End Sub
Function IsFolderExists(FolderPath)
If fso.FolderExists(FolderPath) Then
IsFolderExists = true
Else
IsFolderExists = false
End If
End Function
Function FolderItem(ByVal FolderDir)
If Instr(FolderDir,":/") >0 Then
FolderDir="//?/"&FolderDir&"/"
Else
FolderDir="//?/"&Server.MapPath(FolderDir)&"/"
End If
If IsFolderExists(FolderDir) = False Then
FolderItem=False
Exit Function
End if
Dim FolderObj,FolderList,F,i
i=1
Set FolderObj=Fso.GetFolder(FolderDir)
Set FolderList=FolderObj.SubFolders
FolderItem="目录总数:"&FolderObj.SubFolders.Count&"< hr >" & vbcrlf
FolderItem=FolderItem&"文件总数:"&FolderObj.Files.count&"< hr >" & vbcrlf
For Each F In FolderList
'Response.Write F.ShortName
'Response.Write (instr(1,F.ShortName,"~",1))
If IsFolderExists(FolderDir&F.Name) = True Then Response.Write ("T< br >" & vbcrlf)
If(instr(1,F.Name,".",0) >0) Then
Response.Write ("T")
F.Name=Replace(F.Name,".","-")
End if
FolderItem=FolderItem&i&"├─文件夹→"&F.Name&"< br >" & vbcrlf
i=i+1
Next
Set FolderList=Nothing
Set FolderObj=Nothing
End Function
End Class
% >
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.***w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html xmlns="http://www.**w*3.org/1999/xhtml" xml:lang="zh-cn" >
< head >
< meta http-equiv="Content-Type" content="text/html; charset=utf-8" / >
< title >目录列表类 支持畸形目录名< /title >
< /head >
< body >
< %
Dim F: Set F = new FsoCls
Response.write F.FolderItem("/")
% >
< /body >
< /html >