2013-06-26 1 views
1

У меня есть эта строка кода в php, которая возвращает массив имен файлов примерно так:Есть ли эквивалент VBscript функции php glob

1 => folderName/elev-a.jpg 
1 => folderName/elev-b.jpg 
1 => folderName/elev-c.jpg 
1 => folderName/elev-d.jpg 

.. это код

$elev = glob($folderName.'/elev-[a-z].jpg'); 

теперь мне нужно использовать это в программе в ASP. Из того, что я читал до сих пор, похоже, что мне нужно использовать объект словаря, объект файловой системы, объект Regex и некоторый цикл. Кажется, что, возможно, я пропускаю что-то в VBscript, о котором я, возможно, не знаю. Неужели было бы трудно воспроизвести эту функцию? Я потерялся.

ответ

1

Я не сделал целую кучу сценариев на стороне сервера, но я что-то валяется, похожий на то, что вы ищете:

Function GetFileNames(Directory, Pattern) 
Dim FileNames(), AfterPattern() 
Dim FolderObject, fso, f 
Dim i 
i = 0 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set FolderObject = fso.GetFolder(Directory) 
ReDim FileNames(FolderObject.Files.Count) 
ReDim AfterPattern(FolderObject.Files.Count) 
For Each f In FolderObject.Files 
    FileNames(i) = f.Path 
    i = i + 1 
Next 
'Pattern Portion 
Dim RegExp 
Set RegExp = CreateObject("VBScript.RegExp") 
RegExp.Pattern = Pattern 
RegExp.Global = False 
Dim x 
x = -1 
For i = LBound(FileNames()) To UBound(FileNames()) 
    If RegExp.Test(FileNames(i)) = True Then 
     x = x + 1 
     AfterPattern(x) = FileNames(i) 

    End If 
Next 
ReDim Preserve AfterPattern(x+1) 
GetFileNames = AfterPattern() 


Set fso = Nothing 
Set FolderObject = Nothing 
Set RegExp = Nothing 

End Function 

Второй аргумент является шаблоном регулярного выражения, как вы упомянутый в вашем вопросе. :-)

Приветствия, LC

+2

Похоже, это будет работать, Allthough я предпочитаю использовать ArrayList ('Set AL = CreateObject (" System.Collections. ArrayList ")'), потому что вы можете просто добавлять элементы .Add в AL. В конце вы можете создать просто массив с '.ToArray()'. Обратите внимание, что в VBS не работает 'Optional',' f' никогда не объявляется и 'To' в' Redim' также не работает в VBS. – AutomatedChaos

+0

@AutomatedChaos Спасибо за отзыв. :) – dennythecoder

+0

Вау! Так что это было так же важно, как я думал. Большое спасибо. –

-1

Попробуйте следующее:
$elev = glob($folderName.'/elev-'.'*');

+0

Это не VBScript. –

 Смежные вопросы

  • Нет связанных вопросов^_^