I am wanting to get a string array of paths of files that do not have extensions. They are binary files with no extensions if that helps.
For example, I am loading a group of file paths out of a folder /test/
I want just the path and filenames that do not have a extension (so no .txt
, no .csv
, no .*
)
/test/dontWant.txt
/test/dontWant.csv
/test/doWant
if i do:
String[] paths = Directory.GetFiles(fDir, "*.*", SearchOption.AllDirectories);
I of course get everything in those directories.
if I then try:
String[] paths= Directory.GetFiles(fDir, "*", SearchOption.AllDirectories);
I will still get everything in that directory.
Is there a way to just get the files of those that have no extension?
using "*."
did work, and I don't know why I didn't try that to start with.
I should have been using EnumerateFiles
to start with.
You can try with this wildcard
String[] paths = Directory.GetFiles(fDir, "*.", SearchOption.AllDirectories);
also you can use this wildcard with Directory.EnumerateFiles
Directory.EnumerateFiles(fDir, "*.", SearchOption.AllDirectories);
This will help:
var filesWithoutExtension = System.IO.Directory.GetFiles(@"D:\temp\").Where(filPath => String.IsNullOrEmpty(System.IO.Path.GetExtension(filPath)));
foreach(string path in filesWithoutExtension)
{
Console.WriteLine(path);
}
It will return all the files w/o extension only in specified dir. If you want to include all the sub-directories you'd have to use: System.IO.Directory.GetFiles(@"D:\temp\", "*", SearchOption.AllDirectories)
.
UPDATE
As guys suggested, it's better to use Directory.EnumerateFiles
because it consumes less ram.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With