using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Collections;
public partial class _Default : System.Web.UI.Page
{
//string sourceFolder = @"E:\Projects Work\Uploading Automation\RootDirectory\TestingUnzipped";
//string destinationFolder = @"E:\Projects Work\Uploading Automation\RootDirectory\Original";
//string backupPath = @"E:\Projects Work\Uploading Automation\RootDirectory\Backup";
public string sourceFolder = @"F:\UploadedFiles";
public string destinationFolder = @"F:\OriginalFiles";
public string backupPath = @"F:\BackupFiles";
public string relativePath = "";
public string OriginalPath = "";
int globalCounter = 0;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//foreach (string f in Directory.GetFiles(TextBox3.Text))
//{
// if (File.Exists(TextBox4.Text + f.Substring(f.LastIndexOf(@"\") + 1)))
// {
// string filename = f.Substring(f.LastIndexOf(@"\") + 1);
// string fn_withoutextn = filename.Substring(0, filename.IndexOf(@"."));
// //ListBox3.Items.Add(fn_withoutextn);
// File.Copy("F:\\OriginalFiles\\"+filename ,"F:\\BackupFiles\\"+filename);
// }
//}
BackupManagement();
}
public void BackupManagement()
{
DirectoryInfo dir1 = new DirectoryInfo(sourceFolder);
DirectoryInfo dir2 = new DirectoryInfo(destinationFolder);
DirectoryInfo dir3 = new DirectoryInfo(backupPath);
CheckDuplicateFiles(dir1.GetDirectories(), dir2.GetDirectories(), dir3);
}
protected void CheckDuplicateFiles(DirectoryInfo[] sourceDir, DirectoryInfo[] destDir, DirectoryInfo objDirBackup)
{
globalCounter = globalCounter + 1;
int OriginalStringLenght = 0;
int relativePathLenght = 0;
for (int countSource = 0; countSource < sourceDir.Length; countSource++)
{
for (int countDest = 0; countDest < destDir.Length; countDest++)
{
if (sourceDir[countSource].Name == destDir[countDest].Name)
{
if (globalCounter == 1)
{
OriginalPath = CreateBackUpFolderspath(sourceDir[countSource].Name);
}
else
{
relativePath = @"/" + CreateBackUpFolderspath(sourceDir[countSource].Name);
OriginalPath = OriginalPath + relativePath;
}
objDirBackup.CreateSubdirectory(OriginalPath);
foreach (string f in Directory.GetFiles(sourceDir[countSource].FullName))
{
if (File.Exists(destDir[countDest].FullName + @"\" + f.Substring(f.LastIndexOf(@"\") + 1)))
{
string filename = f.Substring(f.LastIndexOf(@"\") + 1);
string fn_withoutextn = filename.Substring(0, filename.IndexOf(@"."));
//ListBox3.Items.Add(fn_withoutextn);
backupPath = @"F:\BackupFiles";
backupPath = destDir[countDest].FullName.Replace(destinationFolder, backupPath);
Label1.Text = destDir[countDest].FullName;
File.Copy(destDir[countDest].FullName + @"\" + filename, backupPath + @"\" + filename);
}
}
if (sourceDir[countSource].GetDirectories().Length != 0)
{
CheckDuplicateFiles(sourceDir[countSource].GetDirectories(), destDir[countDest].GetDirectories(), objDirBackup);
OriginalStringLenght = OriginalPath.Length;
relativePathLenght = relativePath.Length;
OriginalPath = OriginalPath.Substring(0, OriginalStringLenght - relativePathLenght);
if (OriginalPath.Contains("/"))
relativePath = OriginalPath.Substring(OriginalPath.LastIndexOf('/') + 1);
else
relativePath = OriginalPath;
globalCounter--;
}
}
}
OriginalStringLenght = OriginalPath.Length;
relativePathLenght = relativePath.Length;
if (OriginalStringLenght > 0)
OriginalPath = OriginalPath.Substring(0, OriginalStringLenght - relativePathLenght);
if (OriginalPath.Contains("/"))
relativePath = OriginalPath.Substring(OriginalPath.LastIndexOf('/') + 1);
else
relativePath = OriginalPath;
}
}
protected string CreateBackUpFolderspath(string Name)
{
string path = Name;
int i = path.LastIndexOf("\\");
path = path.Substring(i + 1);
return path;
}
protected void Button2_Click(object sender, EventArgs e)
{
}
protected string GetPathofRequiredFolder(string FolderName, DirectoryInfo destination)
{
}
}
No comments:
Post a Comment