
Introduction
One of the rich experiences in working with .NET is a huge collection of Base Class Libraries. The .NET Framework class library is a library of classes, interfaces, and value types that are included in the Microsoft .NET Framework SDK. This library provides access to system functionality and is designed to be the foundation on which .NET Framework applications, components, and controls are built.
Details
System.IO
namespace contains types that allow synchronous and asynchronous reading and writing on data streams and files.
To parse information of lots of files and directories, the FileSystemInfo
class comes in handy. It is an abstract class and contains members (methods, properties �) that are common to file and directory manipulation. A FileSystemInfo
object can represent either a file or a directory. The implementation of this abstract class is done in FileInfo
and DirectoryInfo
class. The Members would take full path (absolute or relative) or UNC path if they require path as one of the parameters.
The FileInfo
class and DirectoryInfo
class extends FileSystemInfo
class and each add some more members to themselves for specific operations. The FileInfo
class provides instance methods for the creation, copying, deletion, moving, and opening of files, and provides members to create FileStream objects. The DirectoryInfo
class provides instance methods for creating, moving, and enumerating through directories and subdirectories.
List of members of FileInfo
Class, I have included only a few , for more information refer to .NET SDK.
CreationTime |
Get or sets the creation time of the current FileSystemInfo Object. |
Directory |
get the instance of the parent directory |
DirectoryName |
Get a string representing the directory's full path |
Exists |
Get a value indication whether a file exists |
FullName |
Gets the full path of the directory or file |
LastAccessTime |
Gets or sets the time the current file or directory was last accessed. |
LastWriteTime |
Gets or sets the time when the current file or directory was last written to. |
Name |
Gets the name of the file |
Using the code
This Sample code shows how to use FileInfo
and DirectoryInfo
Classes.
protected void ProcessFile(string PathName)
{
try
{
FileInfo TheFile = new FileInfo(PathName);
if (TheFile.Exists)
{
DirectoryInfo Parent = TheFile.Directory;
ListContentsOfFolder(Parent);
DisplayFileInfo(TheFile);
return;
}
throw new FileNotFoundException();
}
catch(FileNotFoundException )
{
tbFolder.Text = PathName;
listFileItems.Items.Add(
"This file or folder does not exist");
}
catch(Exception e)
{
tbFolder.Text = PathName;
listFileItems.Items.Add("Error Processing");
listFileItems.Items.Add(e.Message);
}
finally
{
ListItems = false;
}
}
The above sample code shows how to get the information of the file and display the contents of the file.
protected void ProcessFolder(string PathName)
{
try
{
DirectoryInfo TheFolder = new DirectoryInfo(PathName);
if (TheFolder.Exists)
{
ListContentsOfFolder(TheFolder);
return;
}
throw new FileNotFoundException();
}
catch(FileNotFoundException )
{
tbFolder.Text = PathName;
listFolderItems.Items.Add(
"This folder or folder does not exist");
}
catch(Exception e)
{
tbFolder.Text = PathName;
listFolderItems.Items.Add("Problem occurred:");
listFolderItems.Items.Add(e.Message);
}
finally
{
ListItems = false;
}
}
The above code shows the folder names in the specified directory. To show the information of the file we have a small helper function called DisplayFileInfo(...).
protected void DisplayFileInfo(FileInfo TheFile)
{
tbFileName.Text = TheFile.Name;
tbCreationTime.Text = TheFile.CreationTime.ToLongTimeString();
tbLastAccessTime.Text = TheFile.LastAccessTime.ToLongDateString();
tbLastWriteTime.Text = TheFile.LastWriteTime.ToLongDateString();
tbSize.Text = TheFile.Length.ToString() + " Bytes";
}
In order to delete, move, copy there are much simpler operation available in .NET SDK - like File.Delete
, File.Copy
and File.Move