Filesystem I/O
.NET provides two types that allow you to
deal directly with files: File and
FileInfo. A FileInfo instance
represents an actual file and its metadata, but the
File object contains only static methods used to
manipulate files. That is, you must instantiate a
FileInfo object to access the contents of the file
as well as information about the file, but you can call
File’s static methods to access
files transiently.
The following C# code snippet shows
how you can use FileInfo to determine the length
of a file and its latest modification date. Note that both
Length and LastAccessTime are
properties of the FileInfo object:
// Create an instance of File and query it FileInfo fileInfo = new FileInfo(@"C:\data\file.xml"); long length = fileInfo.Length; DateTime lastAccessTime = fileInfo.LastAccessTime;
Note
Since the FileInfo and File
types are contained in the System.IO namespace, to
compile a class containing this code snippet you must include the
following using statement:
using System.IO;
I skip the using statements in code snippets, but
I include them in full code listings.
You can also use the
File type to get the file’s last
access time, but you cannot get the file’s length
this way. The GetLastAccessTime( ) method returns
the last access time for the filename passed to it, but there is no
GetLength( ) method equivalent to the
FileInfo object’s
Length property:
// Get the last access time of a file transiently DateTime lastAccessTime = File.GetLastAccessTime(@"C:\data\file.xml"); ...