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
}

}


}

Comments: Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?