ASP FSO显示特殊文件夹的实现代码(畸形目录名、UNC路径)

2018-09-06 13:08

阅读:402

  这个目前还是有个别无法显示,翻了下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.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(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
<html xmlns=
<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>


评论


亲,登录后才可以留言!