Nicolas Raoul Nicolas Raoul - 1 year ago 188
C# Question

Directory.GetFiles: how to get only filename, not full path?

Possible Duplicate:

How to get only filenames within a directory using c#?

Using C#, I want to get the list of files in a folder.

My goal:
["file1.txt", "file2.txt"]

So I wrote this:

string[] files = Directory.GetFiles(dir);

Unfortunately, I get this output:
["C:\\dir\\file1.txt", "C:\\dir\\file2.txt"]

I could strip the unwanted "C:\dir\" part afterward, but is there a more elegant solution?

Answer Source

You can use System.IO.Path.GetFileName to do this.


string[] files = Directory.GetFiles(dir);
foreach(string file in files)

While you could use FileInfo, it is much more heavyweight than the approach you are already using (just retrieving file paths). So I would suggest you stick with GetFiles unless you need the additional functionality of the FileInfo class.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download