Reputation: 11483
Are they equivalent or alternatives to each other? Is any of them deprecated and if so, which one? Which one is recommended for use in an ASP.NET web application? My aim is to extract all files from a specific directory recursively.
Upvotes: 49
Views: 57394
Reputation: 12419
DirectoryInfo has a DirectoryInfo.GetFiles method that probably meet your requirements.
Upvotes: 1
Reputation: 69262
Directory is a static class that provides static methods for working with directories. DirectoryInfo is an instance of a class that provides information about a specific directory. So for example, if you wanted the information about C:\Temp:
var dirInfo = new DirectoryInfo("C:\\Temp");
if (dirInfo.Exists) {
FileInfo[] files = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
...
}
If you just wanted the names as strings, it might be quicker and easier to avoid creating an instance of DirectoryInfo by using the static methods of Directory.
if (Directory.Exists("C:\\Temp")) {
string[] files = Directory.GetFiles("C:\\Temp", "*.*", SearchOption.AllDirectories);
...
}
In short, it really doesn't matter which you use as long as it does what you want. Neither is recommended over the other.
Upvotes: 58
Reputation: 135
Directory
Directory Info Class
Upvotes: 4
Reputation: 16577
Directory
class is a static class which can be used to create, move, enumerate directories and sub directories. TheDirectoryInfo
class is also served for the same purpose likeDirectory
class where its members are instance members as opposed toDirectory
class. The main difference between the two lies in when we can use these classes.Directory
class can be used when we want to a simple folder operation at once. For example, you need to delete the folder and get away. But, theDirectoryInfo
class is associated with a folder and provides you all the operations that can be done on the folder. TheDirectoryInfo
class accepts a path as parameter when instantiating and provides you everything on the folder. You can create subdirectories, move, enumerate etc. CODEDIGEST
Also an important note if you have to do several actions on directory DirectoryInfo will have performance advantage as it will not require security privileges check on each action.
Upvotes: 10
Reputation: 3739
DirectoryInfo is (basically) the Directory class but is used in a non-static context. If you are going to be making many calls to the FileSystem, especially when its the same folder or in subdirectory of said folder, MSDN suggests using DirectoryInfo.
Upvotes: 2