有什么方法可以使用asp.net中的c#检查一台服务器中的目录是否在另一台服务器中?

时间:2019-07-15 18:45:07

标签: c# asp.net asp.net-web-api directory

我在两个服务器中有两个目录用于在项目中上载文档,并且我想检查所有目录是否都存在于两个服务器中,并且如果它仅存在于一个服务器中,我想将此目录复制到另一个服务器。 / 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;
        }

0 个答案:

没有答案