我在两个服务器中有两个目录用于在项目中上载文档,并且我想检查所有目录是否都存在于两个服务器中,并且如果它仅存在于一个服务器中,我想将此目录复制到另一个服务器。 / p>
在此示例中,我在同一服务器本地主机上有两个目录,我想在两个不同的服务器上执行相同的逻辑。 在视图中:
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
<div>
server 1 : <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
<div>
server 2 : <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
</div>
<div>
server 1 server 2 : <asp:Label ID="Label3" runat="server" Text="Label"></asp:Label>
</div>
</form>
在后面的代码中
protected void Button1_Click(object sender, EventArgs e)
{
string foldername = (TextBox1.Text).ToString();
string path1 = @"D:\Hassan_Ammar\Document\path1";
string path2 = @"D:\Hassan_Ammar\Document\path2";
string foldername1 = path1 + "\\" + foldername;
string foldername2 = path2 + "\\" + foldername;
bool resultofserver1 = Server1Search(foldername);
bool resultofserver2 = Server2Search(foldername);
bool Empty1 = false;
bool Empty2 = false;
if ((resultofserver1 == true && resultofserver2 == false) || (resultofserver2 == true && resultofserver1 == false))
{
if (resultofserver1 == false)
{
Directory.CreateDirectory(foldername1);
}
if (resultofserver2 == false)
{
Directory.CreateDirectory(foldername2);
}
Empty1 = Directory.EnumerateFiles(foldername1).Any(); //to check if Directory has sub files
Empty2 = Directory.EnumerateFiles(foldername2).Any();//to check if Directory has sub files
}
if (Empty1 == false&& Empty2== true)
{
foreach (string newpath1 in Directory.GetFiles(foldername2, ".", SearchOption.AllDirectories))
File.Copy(newpath1, newpath1.Replace(foldername2, foldername1), true);
}
else if(Empty1 == true&& Empty2 == false)
{
foreach (string newpath2 in Directory.GetFiles(foldername1, ".", SearchOption.AllDirectories))
File.Copy(newpath2, newpath2.Replace(foldername1, foldername2), true);
}
else if(Empty1==false&& Empty2==false)
{
Label3.Text = "servers don't have any document belong to this customer";
}
else
{
Label3.Text = "servers have all document belong to this customer";
}
Label1.Text= resultofserver1.ToString();
Label2.Text= resultofserver2.ToString();
}
public bool Server1Search(string foldername)
{
bool result = false;
string path1 = @"D:\Hassan_Ammar\Document\path1";
string[] subdirectory1 = Directory.GetDirectories(path1);
string foldername1 = path1 + "\\" + foldername;
foreach (string folder in subdirectory1)
{
if (folder == foldername1)
{
Label1.Text = "true in path 1";
result=true;
}
else
{
Label1.Text = "false in path 1";
}
}
return result;
}
public bool Server2Search(string foldername)
{
bool result = false;
string path2 = @"D:\Hassan_Ammar\Document\path2";
string[] subdirectory2 = Directory.GetDirectories(path2);
string foldername2 = path2 + "\\" + foldername;
foreach (string folder in subdirectory2)
{
if (folder == foldername2)
{
Label2.Text = "true in path 1";
result = true;
}
else
{
Label2.Text = "false in path 1";
}
}
return result;
}