using System; using System.IO; class MainClass { static void Main() { Console.WriteLine("Changing current directory to c:"); Directory.SetCurrentDirectory(@"c:"); Console.WriteLine("Now the relative path 'file.txt' " + "will automatically become '" + Path.GetFullPath("file.txt") + "'"); } }
Get Current Directory
using System; using System.IO; class MainClass { static void Main() { Console.WriteLine("Using: " + Directory.GetCurrentDirectory()); Console.WriteLine("The relative path 'file.txt' " + "will automatically become: '" + Path.GetFullPath("file.txt") + "'"); } }
Check the Existance of a Directory
using System; using System.IO; class MainClass { static void Main(string[] args) { foreach (string arg in args) { Console.Write(arg); if (Directory.Exists(arg)) { Console.WriteLine(" is a directory"); } else if (File.Exists(arg)) { Console.WriteLine(" is a file"); } else { Console.WriteLine(" does not exist"); } } } }
Copy Directory
using System; using System.IO; class MainClass { static void Main(string[] args) { DirectoryInfo sourceDir = new DirectoryInfo("c:source"); DirectoryInfo destinationDir = new DirectoryInfo("c: arget"); CopyDirectory(sourceDir, destinationDir); } static void CopyDirectory(DirectoryInfo source, DirectoryInfo destination) { if (!destination.Exists) { destination.Create(); } // Copy all files. FileInfo[] files = source.GetFiles(); foreach (FileInfo file in files) { file.CopyTo(Path.Combine(destination.FullName, file.Name)); } // Process subdirectories. DirectoryInfo[] dirs = source.GetDirectories(); foreach (DirectoryInfo dir in dirs) { string destinationDir = Path.Combine(destination.FullName, dir.Name); CopyDirectory(dir, new DirectoryInfo(destinationDir)); } } }
Calculate Directory Size
using System; using System.IO; class MainClass { static void Main(string[] args) { DirectoryInfo dir = new DirectoryInfo("c:"); Console.WriteLine("Total size: " + CalculateDirectorySize(dir, true).ToString() + " bytes."); } static long CalculateDirectorySize(DirectoryInfo directory, bool includeSubdirectories) { long totalSize = 0; FileInfo[] files = directory.GetFiles(); foreach (FileInfo file in files) { totalSize += file.Length; } if (includeSubdirectories) { DirectoryInfo[] dirs = directory.GetDirectories(); foreach (DirectoryInfo dir in dirs) { totalSize += CalculateDirectorySize(dir, true); } } return totalSize; } }
Get Last Access Time
using System; using System.IO; class MainClass { static void Main(string[] args) { FileInfo file = new FileInfo("c:a.txt"); // Display directory information. DirectoryInfo dir = file.Directory; Console.WriteLine("Checking directory: " + dir.Name); Console.WriteLine("In directory: " + dir.Name); Console.Write("Directory exists: "); Console.WriteLine(dir.Exists.ToString()); if (dir.Exists) { Console.Write("Directory last accessed: "); Console.WriteLine(dir.LastAccessTime.ToString()); } Console.WriteLine(); } }
Get Last Write Time
using System; using System.IO; class MainClass { static void Main(string[] args) { FileInfo file = new FileInfo("c:a.txt"); // Display directory information. DirectoryInfo dir = file.Directory; Console.WriteLine("Checking directory: " + dir.Name); Console.WriteLine("In directory: " + dir.Name); Console.Write("Directory exists: "); Console.WriteLine(dir.Exists.ToString()); if (dir.Exists) { Console.Write("Directory last updated: "); Console.WriteLine(dir.LastWriteTime.ToString()); } Console.WriteLine(); } }