C# Winform 拷贝共享文件夹文件包含输入共享用户及密码

 string filePath = Application.StartupPath;
            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            try
            {
                CopyDirectory("\\\\192.168.0.23\\printUpdateFile", filePath);
                MessageBox.Show("更新成功!");
                Application.Exit();
            }
            catch (Exception)
            {
                MessageBox.Show("更新失败!");
                Application.Exit();
            }
           
 private void CopyDirectory(string srcdir, string desdir)
        {
            string[] filenames = Directory.GetFileSystemEntries(srcdir);
            foreach (string file in filenames)// 遍历所有的文件和目录
            {
                if (Directory.Exists(file))// 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                {
                    string currentdir = desdir + "\\" + file.Substring(file.LastIndexOf("\\") + 1);
                    if (!Directory.Exists(currentdir))
                    {
                        Directory.CreateDirectory(currentdir);
                    }
                    CopyDirectory(file, desdir);
                }
                else // 否则直接copy文件
                {
                    string srcfileName = file.Substring(file.LastIndexOf("\\") + 1);
                    srcfileName = desdir + "\\" + srcfileName;
                    if (!Directory.Exists(desdir))
                    {
                        Directory.CreateDirectory(desdir);
                    }
                    File.Copy(file, srcfileName, true);
                }
            }
        }

如果访问共享文件夹需要输入验证添加下面代码

方法1:
  ManagementScope   ms   =   new   ManagementScope(@"\\<IP>");  
  ConnectionOptions   conn   =   new   ConnectionOptions();  
  conn.Username   =   "";  
  conn.Password   =   "";  
  ms.Options   =   conn;  
  ms.Connect();
方法2:
System.Diagnostics.Process.Start("net.exe","use   \\\\"+   strServer   +"     /user:\""+   strUserName   +"\"   \""+   strUserPD   +"\"");  
  然后就可以随时访问这台机器上的共享文件夹了  
  string   strPath   =   "\\\\10.1.12.3\\MS\\";  
  ......
原文地址:https://www.cnblogs.com/junjie94wan/p/3046641.html