Multiple Search Pattern for Directory.GetFiles

A

Alphonse Giambrone

Is there a way to use multiple search patterns when calling
Directory.GetFiles.
For instance Directory.GetFiles("C:\MyFolder", "*.aspx") will return all
files with the aspx extension.
But what if I wanted all files with either an aspx OR htm extension?
Any way to get that without calling the method twice?
 
S

Steven Cheng[MSFT]

Hi Alphonse,


Thanks for posting in the community! My name is Steven, and I'll be
assisting you on this issue.
From your description, you're looking for some information how to specify a
string pattern for the Diretory.GetFile method so as to implement searching
for multi extensions of files, yes ?
If there is anything I misunderstood, please feel free to let me know.


As for this problem, I've viewed the "Directory" class 's document in MSDN,
the "GetFile" method's "pattern" argument seems seems not to support the
multi extensions search pattern. The only permitted search pattern Wildcard
character are
"*" and "?". Here is the related description in MSDN:
---------------------------------------------------------
searchPattern
The search string to match against the names of files in path. The
parameter cannot end in two periods ("..") or contain two periods ("..")
followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it
contain any of the characters in InvalidPathChars.

---------------------------------------------------------
For more detailed description on the method, you may view the following
reference in MSDN:
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemIODirectoryCla
ssGetFilesTopic2.asp?frame=true

Also, the pattern string doesn't support regular expression. And I also
tested using other separator charactors such as "," or ";" or white space
as the separator for multi-extensions , for example "*.aspx, *.htm", but
still not work. I think this maybe an acutal limit for the
Directory.GetFile method, do you think so? BTW, do you think it possible
calling the method multi-times to workaround this? Or if you have any
difficulties with this problem, would you please let me know some further
info about the problem, I'll be willing to help you.



Regards,

Steven Cheng
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)
 
A

Alphonse Giambrone

Thanks Steven, I had a feeling that would be the case and have worked out a
routine to call it multiple times.
 
Joined
May 5, 2011
Messages
1
Reaction score
0
stacks of files

I used a stack. Its probably not the right way to do it but it works for me.

Private Sub fillList()
Dim _files As Stack = getFiletypes("C:\Pictures", {"*.bmp", "*.jpg"})
While _files.Count > 0
ListBox1.Items.Add(_files.Pop.Name)
End While
End Sub

Private Function getFiletypes(ByVal path As String, ByVal args() As String) As Stack
Dim _files As New Stack
Dim folder As New DirectoryInfo(path)
For Each arg In args
For Each _file In folder.GetFiles(arg)
_files.Push(_file)
Next
Next
Return _files
End Function

Hope it helps
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,743
Messages
2,569,478
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top