using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace Rcopy
{
class Program
{
static void Main(string[] args)
{
// It copies all the contents from folderv"c:\delete\x"
// to "c:\delete\y
// Note: Folder "c:\delete\y" must exist. The program will
// not create folder "y".
new Program().FolderFileCopy(@"c:\delete\x", @"c:\delete\y");
Console.WriteLine("end of program... click any key to continue");
Console.ReadLine();
}
public int FolderFileCopy(string sourceFolder, string destinationFolder)
{
int fileIterator = 0;
int dirIterator = 0;
//DirectoryInfo sourceDirInfo;
//DirectoryInfo destinationDirInfo;
FileInfo sourceFileInfo;
DirectoryInfo destinationDirInfo = new DirectoryInfo(destinationFolder);
DirectoryInfo sourceDirInfo = new DirectoryInfo(sourceFolder);
DirectoryInfo[] sourceDirList = null;
FileInfo[] files = null;
try
{
sourceDirList = sourceDirInfo.GetDirectories();
for (dirIterator = 0; dirIterator < sourceDirList.Length; dirIterator = dirIterator + 1)
{
if (dirIterator == 0)
{
files = null;
files = sourceDirInfo.GetFiles();
for (fileIterator = 0; fileIterator < files.Length; fileIterator = fileIterator + 1)
{
sourceFileInfo = new FileInfo(sourceDirInfo.FullName +
Path.DirectorySeparatorChar + files[fileIterator].Name);
sourceFileInfo.CopyTo(destinationDirInfo.FullName +
Path.DirectorySeparatorChar + files[fileIterator].Name, true);
}
}
destinationDirInfo.CreateSubdirectory(sourceDirList[dirIterator].Name);
sourceDirInfo = new DirectoryInfo(sourceDirInfo.FullName +
Path.DirectorySeparatorChar +
sourceDirList[dirIterator].Name);
destinationDirInfo = new DirectoryInfo(destinationDirInfo.FullName +
Path.DirectorySeparatorChar + sourceDirList[dirIterator].Name);
FolderFileCopy(sourceDirInfo.FullName, destinationDirInfo.FullName);
}
files = null;
files = sourceDirInfo.GetFiles();
for (fileIterator = 0; fileIterator < files.Length; fileIterator = fileIterator + 1)
{
sourceFileInfo = new FileInfo(sourceDirInfo.FullName +
Path.DirectorySeparatorChar + files[fileIterator].Name);
sourceFileInfo.CopyTo(destinationDirInfo.FullName +
Path.DirectorySeparatorChar + files[fileIterator].Name, true);
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
return -1;
}
return 0;
}
}
}
|