Некоторые специальные папки asp не могут быть полностью отображены, но их можно удалить через путь unc, но предполагается, что точный путь должен быть известен. В настоящее время все еще есть некоторые случаи, которые не могут быть отображены через msdn и я не знаю. Кажется, я не вижу лучшего решения, откажитесь на время от исследования, и друзья, которые знают полное решение, возможно, захотят ответить.
Сначала прикрепите bat, чтобы создать неверный каталог. Скопируйте и сохраните следующий код как a.bat:
Скопируйте код кода следующим образом:
мд вспомогательный //
мкр com1//
мк2//
мкр прн//
мкр.//
MD ноль//
мкр точка...//
мк онедот..//
программный код
Скопируйте код кода следующим образом:
<%@LANGUAGE=КОДОВАЯ СТРАНИЦА VBSCRIPT=65001%>
<%
опция явная
ответ.charset = UTF-8
сеанс.кодовая страница = 65001
сеанс.таймаут = 1440
server.scripttimeout = 9999
'***************************
'Имя: класс списка каталогов
'Автор: Ипин
'Дата: 28 апреля 2010 г.
'Веб-сайт: www.vevb.com.
'Описание: Класс списка каталогов, поддерживает неверные имена каталогов.
'***************************
Класс ФсоКлс
Рядовой ФСО
Публичный FsoObj
Частный подкласс_инициализировать
Установите Fso=CreateObject(Scripting.FileSystemObject)
Установите FsoObj=Fso
Конец субтитра
Частный подкласс_Terminate
Установить Fso=Ничего
Установить FsoObj=Ничего
Конец субтитра
Функция IsFolderExists(FolderPath)
Если fso.FolderExists(FolderPath) Тогда
Исфолдерексистс = истина
Еще
Исфолдерексистс = ложь
Конец, если
Конечная функция
Функция FolderItem(ByVal FolderDir)
Если Instr(FolderDir,:/)>0 Тогда
ПапкаДир=//?/&ПапкаДир&/
Еще
FolderDir=//?/&Server.MapPath(FolderDir)&/
Конец, если
Если IsFolderExists(FolderDir) = False Тогда
FolderItem=False
Выход из функции
Конец, если
Тусклый FolderObj, FolderList, F, i
я = 1
Установить FolderObj=Fso.GetFolder(FolderDir)
Установить FolderList=FolderObj.SubFolders
FolderItem=Общее количество каталогов: &FolderObj.SubFolders.Count&<hr> & vbcrlf
FolderItem=FolderItem&Общее количество файлов: &FolderObj.Files.count&<hr> & vbcrlf
Для каждого F в списке папок
'Response.Write F.ShortName
'Response.Write (instr(1,F.ShortName,~,1))
Если IsFolderExists(FolderDir&F.Name) = True, то Response.Write (T<br> и vbcrlf)
Если(инстр(1,F.Name,.,0)>0) Тогда
Ответ.Запись(T)
F.Name=Заменить(F.Name,.,-)
Конец, если
FolderItem=FolderItem&i&├─Папка→&F.Name&<br> & vbcrlf
я=я+1
Следующий
Установить список_папок=Ничего
Установить FolderObj=Ничего
Конечная функция
Конечный класс
%>
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml xml:lang=zh-cn>
<голова>
<meta http-equiv=Content-Type content=text/html; charset=utf-8 />
<title>Класс списка каталогов поддерживает неверные имена каталогов</title>
</голова>
<тело>
<%
Dim F: Установить F = новые FsoCls
Response.write F.FolderItem(/)
%>
</тело>
</html>