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.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
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.
Method 2
Directoryclass 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 likeDirectoryclass where
its members are instance members as
opposed toDirectoryclass. The main
difference between the two lies in
when we can use these classes.
Directoryclass 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, the
DirectoryInfoclass is associated
with a folder and provides you all the
operations that can be done on the
folder. TheDirectoryInfoclass
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.
Method 3
Directory
- Directory is a static class.
- This should be used when we want to perform one operation in the folder.
- As There is not any requirement to create object for Directory class, so not any overhead for using this.
Directory Info Class
- DirectoryInfo is not a static class.
- If user is required to perform lot of operations on one directory like creation, deletion, file listing etc, then DirectoryInfo class should be used.
- A separate object is created for performing all directory related operations.
- It’s effective if you are going to perform many operations on the folder because, once the object is created, it has all the necessary information about the folder such as its creation time, last access time and attributes. All the members of the DirectoryInfo class are instance members.
Method 4
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.
Method 5
DirectoryInfo has a DirectoryInfo.GetFiles method that probably meet your requirements.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0