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));
}
}
}
Month: February 2011
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();
}
}
Get Creation 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 created: ");
Console.WriteLine(dir.CreationTime.ToString());
}
Console.WriteLine();
}
}
Get Name, Parent, Exists properties from DirectoryInfo class
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 created: ");
Console.WriteLine(dir.CreationTime.ToString());
Console.Write("Directory last updated: ");
Console.WriteLine(dir.LastWriteTime.ToString());
Console.Write("Directory last accessed: ");
Console.WriteLine(dir.LastAccessTime.ToString());
Console.Write("Directory attribute list: ");
Console.WriteLine(dir.Attributes.ToString());
Console.WriteLine("Directory contains: " +
dir.GetFiles().Length.ToString() + " files");
}
Console.WriteLine();
}
}
File Search
using System;
using System.IO;
public class FileSearch {
public static void Main() {
String searchName = "win";
DirectoryInfo myDir = new DirectoryInfo(@"c:Program Files");
SearchDirectories(myDir, searchName);
}
public static void SearchDirectories(DirectoryInfo dir, String target) {
FileInfo[] files = dir.GetFiles();
foreach (FileInfo file in files) {
if (file.Name.IndexOf(target) > -1) {
Console.WriteLine(file.Name);
}
}
DirectoryInfo[] dirs = dir.GetDirectories();
foreach (DirectoryInfo subDir in dirs) {
SearchDirectories(subDir, target);
}
}
}

