Directories and Files

The File and Directory classes contain static methods and properties that encapsulate the operations typically associated with file I/O, such as copying, moving, deleting, renaming, and enumerating files and directories.

The actual manipulation of the contents of a file is done with a FileStream. The File class has methods that return a FileStream, though you may directly instantiate a FileStream.

Reading and Writing Files

This example reads in and prints out the first line of a text file specified on the command line:

using System;
using System.IO;
class FileDumper {
   static void Main(string[] args) {
      Stream s = File.OpenRead(args[0]);
      StreamReader sr = new StreamReader(s);
      Console.WriteLine(sr.ReadLine());
      sr.Close();
   }
}

Examining Directories

To examine the contents of the filesystem, use the DirectoryInfo and FileInfo classes, both of which are derived from a common FileSystemInfo base class. These provide access to most of the filesystem information, which the following example demonstrates by replicating the results of the dir command:

using System; using System.IO; using System.Text; class DirCommand { static void Main() { long numFiles=0, numDirs=0, totalBytes=0; string currentDir = Directory.GetCurrentDirectory(); DirectoryInfo currentDirInfo = new DirectoryInfo(currentDir); StringBuilder sb = new StringBuilder(); sb.AppendFormat(" Directory of {0}\n\n", currentDirInfo.FullName); DirectoryInfo rootDirInfo = currentDirInfo.Root; if (rootDirInfo != null) { sb.AppendFormat("{0:dd/MM/yyyy ...

Get C# in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.