2013-06-26 110 views
1

我在php中有這一行代碼,它返回一個像這樣的文件名數組;是否有一個相當於php glob函數的VBscript

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('設置AL =的CreateObject(「System.Collections中。 ArrayList「)'),因爲你可以簡單地將'.Add'項添加到AL中。最後你可以用'.ToArray()'創建一個簡單的數組。請注意'可選'在VBS中不起作用,'f'從不聲明,'Redim'中的'To'在VBS中也不起作用。 – AutomatedChaos

+0

@AutomatedChaos感謝您的反饋。 :) – dennythecoder

+0

哇!因此,這涉及到我認爲的那樣。非常感謝你。 –

-1

嘗試以下操作:
$elev = glob($folderName.'/elev-'.'*');

+0

這不是VBScript。 –

相關問題