Sunday, March 06, 2005
Streams - 1 (Draft)
This is a simple program to explore the static Directory class
using System;
using System.IO;
using System.Diagnostics;
using System.Threading;
///
/// This program displays the folders of E:\DeleteMe
///
class DisplayDirectory
{
static string folder = @"E:\DeleteMe";
static string createFolder = @"E:\DeleteMe2";
public static void Main()
{
Console.WriteLine("folder = " + folder + "\n");
try {
// Does directory exists?
Console.WriteLine("Directory.Exists({0}) = {1}", folder, Directory.Exists(folder) );
// Create directory
Console.WriteLine("\nCreating folder " + createFolder);
if( ! Directory.Exists(createFolder) ) // If directory doesn't exists
Directory.CreateDirectory(createFolder);
Debug.Assert(Directory.Exists(createFolder), // Folder should exists
"Folder " + createFolder + " should exist");
// DIsplay the time the folder was created
DateTime folderTime = Directory.GetCreationTime(createFolder);
Console.WriteLine("Time {0} was created is {1}", createFolder, folderTime.ToString() );
// Display the current folder
Console.WriteLine("\nThe current directory is " + Directory.GetCurrentDirectory() );
// Display the directories in E: Console.WriteLine("\n" + @"E:\ contains ... ");
foreach(string directory in Directory.GetDirectories(@"E:\") )
{
Console.Write(directory + "\t");
}
Console.WriteLine("\n");
// Display directories in E:\ that starts with "C"
Console.WriteLine(@"E:\ subdirectories that starts with C... ");
foreach(string directory in Directory.GetDirectories(@"E:\", "C*.*") )
{
Console.Write(directory + "\t");
}
Console.WriteLine();
// Get the directory root
Console.WriteLine("\nDirectory.GetDirectoryRoot(createFolder) = " +
Directory.GetDirectoryRoot(createFolder) );
Console.WriteLine(@"Directory.GetDirectoryRoot(""."") = " +
Directory.GetDirectoryRoot(".") );
// Get the files in the current folder
Console.WriteLine("\nFiles in the current folder \".\" ({0}) are: ", Directory.GetCurrentDirectory() );
foreach(string files in Directory.GetFiles(".") )
{
Console.Write("{0}\t", files);
}
Console.WriteLine();
// Get ALL the files and subdirectories of E:\C#\Database
Console.WriteLine("\nAll Files and directories in " + @"E:\C#\Database" + " are:" );
foreach(string files in Directory.GetFileSystemEntries(@"E:\C#\Database") )
{
Console.Write("{0}\t", files);
}
Console.WriteLine();
// Sleep for awhile
//Thread.Sleep(TimeSpan.FromSeconds(3) );
// Get and set the ACCESS time of the folder E:\DeleteMe2
// Access teh folder (so that access time is NOW)
Directory.GetFileSystemEntries(createFolder);
// Get the time
Console.WriteLine("\nAccess time for {0} is {1}",
createFolder, Directory.GetLastAccessTime(createFolder) );
// Set the access time
Directory.SetLastAccessTime(createFolder, new DateTime(2012, 12, 12, 12, 12, 12) );
// Get the time
Console.WriteLine("\n\tAccess time for {0} AFTER SETTING is {1}",
createFolder, Directory.GetLastAccessTime(createFolder) );
// Get and set WRITE tiem of the folder E:\DeleteME
Console.WriteLine("\nWritten time for {0} REAL {1}",
createFolder, Directory.GetLastWriteTime(createFolder) );
// Set the write time
Directory.SetLastWriteTime(createFolder, new DateTime(2012, 12, 12, 12, 12, 12) );
Console.WriteLine("\n\tWritten time for {0} AFTER SETTING {1}",
createFolder, Directory.GetLastWriteTime(createFolder) );
// Get the dirves in this computer
Console.WriteLine("\nDrives in this computer: ");
foreach(string drives in Directory.GetLogicalDrives() )
{
Console.Write("{0}\t", drives);
}
Console.WriteLine();
// Get the parent folder in DirectoryInfo
DirectoryInfo parent = Directory.GetParent(".");
Console.WriteLine("\nParent = " + parent);
// Directory.Move()
// Make some directories in E:\DeleteMe\Shaohen
Directory.CreateDirectory(@"E:\DeleteMe\Shaohen");
Debug.Assert(Directory.Exists(@"E:\DeleteMe\Shaohen"));
// Move the folder to E: // Note: The destination folder shouldn't exists, meaning
// If want to move E:\DeleteMe\Shaohen to E:\DeleteMe2 so that
// E:\DeleteMe2 has E:\DeleteMe2\Shaohen // Then the argument to Directory.Move() should be
// Directory.Move(@"E:\DeleteMe\Shaohen", @"E:\DeleteMe2\Shaohen");
// and not
// Directory.Move(@"E:\DeleteMe\Shaohen", @"E:\DeleteMe2");
Directory.Move(@"E:\DeleteMe\Shaohen", @"E:\DeleteMe2\Shaohen");
// Set current Directory to E:\DeleteMe
Directory.SetCurrentDirectory(folder);
// Get current Directory
Console.WriteLine("\nCurrent directory is " + Directory.GetCurrentDirectory() );
}
catch(Exception e)
{
Console.WriteLine("Error: " + e);
}
finally
{
// Delete the folder
Console.WriteLine("\nDeleting folder " + createFolder);
Directory.Delete(createFolder, true); // Delete the folder and
// all the subdirectories
Debug.Assert( !Directory.Exists(createFolder) );// Folder shouldn't exists
}
}
}