Поиск файлов в заданной директории

Программирование на Active Server Pages и VBScript.
Mishel
Начинающий
Начинающий
 
Сообщения: 19
Зарегистрирован: 14.09.2004 (Вт) 17:55

Поиск файлов в заданной директории

Сообщение Mishel » 25.07.2005 (Пн) 17:20

Добрый день!
Как можно найти файлы в заданной директории по маске, т.е. по частичному имени.
Пример: найти файлы *1222*.jpg
.....
1111_prev.jpg
1222_prev.jpg
1222_comp.jpg
1223_comp.jpg
.....
соответственно нужно найти 2 и 3 файл в списке
FileExists из FSO почему-то не поспринимает спец. символ * (зведочку)?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 06.08.2005 (Сб) 15:05

Пример использования функции Dir
В данном примере функция Dir используется для поиска определенных файлов и каталогов.

Dim MyFile, MyPath, MyName
' Возвращает "WIN.INI" (при наличии).
MyFile = Dir("C:\WINDOWS\WIN.INI")

' Возвращает имя файла с указанным расширением. При наличии нескольких
' файлов *.INI возвращается первый найденный файл.
MyFile = Dir("C:\WINDOWS\*.INI")

' Повторно вызывает Dir без параметров для возврата следующего файла
' с расширением *.INI, находящегося в том же каталоге.
MyFile = Dir

' Возвращает первый файл с расширением *.TXT и атрибутом "скрытый".
MyFile = Dir("*.TXT", vbHidden)

' Возвращает список каталогов на диске C:.
MyPath = "c:\" ' Указывает путь.
MyName = Dir(MyPath, vbDirectory) ' Возвращает первый элемент.
Do While MyName <> "" ' Начинает цикл.
' Игнорирует текущий каталог и каталог предыдущего уровня.
If MyName <> "." And MyName <> ".." Then
' Использует поразрядное сравнение для проверки того, ' является ли MyName каталогом.
If (GetAttr(MyPath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' Выводит элемент только в том
End If ' случае, если это каталог.
End If
MyName = Dir ' Возвращает следующий элемент.
Loop


:roll:

Создай свою DLL и сунь туда нечто такое. :wink:

Рома
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 28.10.2005 (Пт) 16:04

Сообщение Рома » 28.10.2005 (Пт) 17:01

Вот еще способ:

Код: Выделить всё
<html>
<body>
<div id="fileSearch">
<%
if Len(Trim(Request.Form("searchStr")))>0 then
  result = ""
  searchStr = Request.Form("searchStr")
  Set FS = Server.CreateObject("Scripting.FileSystemObject")
  strFolder = Server.MapPath("\")
  Set Folder = FS.GetFolder(strFolder)
  i=0
  For each File in Folder.Files
    If InStr(File.Name,searchStr) then
      result = result & "file: " & File.Path & "<br>"
    i=i+1
   end if
  Next ' each file in folder

  Set Folder = Nothing
  Set FS = Nothing

' output
  if Len(result)>0 then
    Response.Write("<u>Result of search by keyword <b>" & searchStr & "</b></u><br><br>")
    Response.Write(result)
    Response.Write("Founded " & i & " files with keyword")
  else
    Response.Write("No result!")
  end if ' exists result?
end if ' exist searchStr?
%>
<form method="post">
<fieldset style="width:200px;border:1px solid Black;text-align:center;">
<input type="text" name="searchStr" value="<%=Request.Form("searchStr")%>" size="10">
<input type="Submit" value="Search!">
</fieldset>
</form>
</div>
</body>
</html>


Вернуться в ASP и VBScript

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 14

    TopList