473,401 Members | 2,125 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,401 software developers and data experts.

filesystem.getfiles question

I'm using filesystem.getfiles - and so far it's working correctly *however*
I'd sure like to be able to pass it, as the last parameter, the extensions
(plural) for which I'm looking.

I assumed that "*.exe, *.dll" for example would work but it seems to not
like that syntax. Would someone correct my misinformation and give me a
way to pass more than a single pattern to that last parameter??

Thanks //al
Feb 13 '06 #1
11 12430
"al jones" <al**********@shotmail.com> schrieb
I'm using filesystem.getfiles - and so far it's working correctly
*however* I'd sure like to be able to pass it, as the last
parameter, the extensions (plural) for which I'm looking.

I assumed that "*.exe, *.dll" for example would work but it seems to
not like that syntax. Would someone correct my misinformation and
give me a way to pass more than a single pattern to that last
parameter??

It is not possible to pass multiple extensions. Get all files and filter
them by extension in a loop.

I don't see the relation to the VB.Net language. Maybe one of the Framework
groups is the better place to ask:

microsoft.public.dotnet.framework.*

You'll benefit from the none-VB'ers, too.
Armin

Feb 13 '06 #2
CMM
If you're using VB2005,
My.Computer.FileSystem.GetFiles(...)
Allows you to specify multiple patterns.

--
-C. Moya
www.cmoya.com
Feb 13 '06 #3
CMM
"Armin Zingler" <az*******@freenet.de> wrote in message
microsoft.public.dotnet.framework.*
You'll benefit from the none-VB'ers, too.


Sorta ironic you say this... considering the feature he seeks AFAIK is only
available in VB (2005) via
My.Computer.FileSystem.GetFiles(...)

--
-C. Moya
www.cmoya.com
Feb 13 '06 #4
CMM
On the other hand, if you're using VB2003, then you can't use
My.Computer.FileSystem.GetFiles().

In which case you can either:

1) Get all the files (*.*) and loop through them yourself recursively using
VB's Like operator (very handly little known comparison operator).

For Each file As String in filesAry
For Each pattern As String in patternsAry
If File.GetFileName(file) Like pattern Then
'do something
End If
Next pattern
Next file

2) Call GetFiles multiple times each with a different pattern. I would
actually think #1 above is the faster option.

--
-C. Moya
www.cmoya.com
"CMM" <cm*@nospam.com> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
If you're using VB2005,
My.Computer.FileSystem.GetFiles(...)
Allows you to specify multiple patterns.

--
-C. Moya
www.cmoya.com

Feb 13 '06 #5
On Mon, 13 Feb 2006 16:40:44 -0500, CMM wrote:
If you're using VB2005,
My.Computer.FileSystem.GetFiles(...)
Allows you to specify multiple patterns.


I got a chuckle out of your response to Armin - I assumed that getfiles
would be available across the family of languages but you're right I *am*
using vb2005.

I must be being really dense, though, can you explain how to specify those
multiple patterns? The tooltip associated with getfiles says that this
item is a ParamArray wildcards() as string. I've tried "*.exe;*.dll" which
returned nothing and thinking that This should be an array
{"*.exe","*.dll"} which the ide complains about ...

Another response to a similar questions suggests making two passes one for
each extension - which is doable, but the time this takes on a large
directory is long to begin with, doubling or tripling it would be
prohibitive. Suggestions?

And thanks to both of you //al
Feb 14 '06 #6
CMM
A "paramarray" means you can specify parameters *inline* for infinity pretty
much
MyProc(param1,param2,param3,param4, ...) You can also pass them as a
singular array if you want. This is how you use the getfiles function:

....

Dim files As ObjectModel.ReadOnlyCollection(Of String) = _
My.Computer.FileSystem.GetFiles("C:\Temp",
FileIO.SearchOption.SearchAllSubDirectories, "*.exe", "*.dll")

or

Dim files2 As ObjectModel.ReadOnlyCollection(Of String) = _
My.Computer.FileSystem.GetFiles("C:\Temp",
FileIO.SearchOption.SearchAllSubDirectories, New String() {"*.exe",
"*.dll"})
P.S.
ObjectModel.ReadonlyCollection is in the System.Collections namespace.

--
-C. Moya
www.cmoya.com
"al jones" <al**********@shotmail.com> wrote in message
news:19*****************************@40tude.net...
On Mon, 13 Feb 2006 16:40:44 -0500, CMM wrote:
If you're using VB2005,
My.Computer.FileSystem.GetFiles(...)
Allows you to specify multiple patterns.


I got a chuckle out of your response to Armin - I assumed that getfiles
would be available across the family of languages but you're right I *am*
using vb2005.

I must be being really dense, though, can you explain how to specify those
multiple patterns? The tooltip associated with getfiles says that this
item is a ParamArray wildcards() as string. I've tried "*.exe;*.dll"
which
returned nothing and thinking that This should be an array
{"*.exe","*.dll"} which the ide complains about ...

Another response to a similar questions suggests making two passes one for
each extension - which is doable, but the time this takes on a large
directory is long to begin with, doubling or tripling it would be
prohibitive. Suggestions?

And thanks to both of you //al

Feb 14 '06 #7
I think the VB.net developers had to go to school to learn how to make
things as convoluted as possible.

GalenS

"CMM" <cm*@nospam.com> wrote in message
news:er**************@TK2MSFTNGP15.phx.gbl...
A "paramarray" means you can specify parameters *inline* for infinity
pretty much
MyProc(param1,param2,param3,param4, ...) You can also pass them as a
singular array if you want. This is how you use the getfiles function:

...

Dim files As ObjectModel.ReadOnlyCollection(Of String) = _
My.Computer.FileSystem.GetFiles("C:\Temp",
FileIO.SearchOption.SearchAllSubDirectories, "*.exe", "*.dll")

or

Dim files2 As ObjectModel.ReadOnlyCollection(Of String) = _
My.Computer.FileSystem.GetFiles("C:\Temp",
FileIO.SearchOption.SearchAllSubDirectories, New String() {"*.exe",
"*.dll"})
P.S.
ObjectModel.ReadonlyCollection is in the System.Collections namespace.

--
-C. Moya
www.cmoya.com
"al jones" <al**********@shotmail.com> wrote in message
news:19*****************************@40tude.net...
On Mon, 13 Feb 2006 16:40:44 -0500, CMM wrote:
If you're using VB2005,
My.Computer.FileSystem.GetFiles(...)
Allows you to specify multiple patterns.


I got a chuckle out of your response to Armin - I assumed that getfiles
would be available across the family of languages but you're right I *am*
using vb2005.

I must be being really dense, though, can you explain how to specify
those
multiple patterns? The tooltip associated with getfiles says that this
item is a ParamArray wildcards() as string. I've tried "*.exe;*.dll"
which
returned nothing and thinking that This should be an array
{"*.exe","*.dll"} which the ide complains about ...

Another response to a similar questions suggests making two passes one
for
each extension - which is doable, but the time this takes on a large
directory is long to begin with, doubling or tripling it would be
prohibitive. Suggestions?

And thanks to both of you //al


Feb 14 '06 #8
CMM
I don't see how.
Doesn't get much simpler than usage of that function... and intellisense
guides you the whole way... though I guess it does look wordy.

--
-C. Moya
www.cmoya.com
Feb 14 '06 #9
"CMM" <cm*@nospam.com> schrieb
On the other hand, if you're using VB2003, then you can't use
My.Computer.FileSystem.GetFiles().

In which case you can either:

1) Get all the files (*.*) and loop through them yourself
recursively using VB's Like operator (very handly little known
comparison operator).

For Each file As String in filesAry
For Each pattern As String in patternsAry
If File.GetFileName(file) Like pattern Then


I'd prefer

select case io.path.getextension.tolower
case ".exe", ".dll" 'or without dot (never know by heart)
msgbox "good file"
case
msgbox "bad file"
end seelct

:)
Armin
Feb 14 '06 #10
"CMM" <cm*@nospam.com> schrieb
"Armin Zingler" <az*******@freenet.de> wrote in message
microsoft.public.dotnet.framework.*
You'll benefit from the none-VB'ers, too.


Sorta ironic you say this... considering the feature he seeks AFAIK
is only available in VB (2005) via
My.Computer.FileSystem.GetFiles(...)


They'd better spend the time putting it into the framework... ;-)
Armin
Feb 14 '06 #11
CMM
> I'd prefer ... <snip>

Sure. Though, my method accomodates more complex search patterns akin to a
real search. You might not necessarily just want to search for extensions.

Forward thinking, man. Forward thinking.

--
-C. Moya
www.cmoya.com
Feb 14 '06 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Lucas Fletcher | last post by:
Hi All, I've searched the web for an article explaining the many tradeoffs between storing your XML in a database vs the filesystem but I haven't really found anything of note. This is the...
4
by: Ben Fidge | last post by:
Hi What is the most efficient way to gather a list of files under a given folder recursively with the ability to specify exclusion file masks? For example, say I wanted to get a list of all...
13
by: Tom Scales | last post by:
OK, I admit, I am not a VB.NET expert and am still learning, but have run into an annoying problem. I'm writing a program that has to search the file system and therefore processes large numbers...
4
by: Yves | last post by:
Hello, I have a little question. I want to make a small app that counts all the files located in a specific directory (chosen via a FolderBrowserDialog by a user). The question is: is there a...
1
by: Starbuck | last post by:
Hi When the routine below is run it gets to the line - Dim fileEntries As String() = Directory.GetFiles(tString) and then freezes, there is no errors etc, the program just stops responding. The...
0
by: Tamir Khason | last post by:
According guidlines of ASP.NET security with medium trust level I should able to use file system IO with my virtual directory, but actual recieve error 500 (not appears with full trust level)...
0
by: graphicsxp | last post by:
Hi, I need to find recursively all the files which have extension .mdb so I did that: files = My.Computer.FileSystem.GetFiles("C:\Databases", FileIO.SearchOption.SearchAllSubDirectories,...
4
by: | last post by:
Hi all, I want to create a method that does the following: 1) Programmatically instantiate a new XmlDataSource control 2) For each file in a named directory, make a "FileSystemItem" element 3)...
3
by: Michael Jackson | last post by:
In my .NET 2.0 VS 2005 VB application, I'm using Directory.GetFiles(path) to get all the files in the directory. However, I'm getting an error regarding "Illegal character in Path", even though I...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.