c#实现共享文件到本地文件的移动

1.c#实现文件的拷贝和删除,从共享文件夹拷贝到本地文件夹

          共享文件夹路径----\\192.168.11.8\share(share为共享文件夹

    private void CopyDir(string srcPath, string dstPath)
        {
            try
            {
                // 检查目标目录是否以目录分割字符结束如果不是则添加之
                if (dstPath[dstPath.Length - 1] != Path.DirectorySeparatorChar)
                    dstPath += Path.DirectorySeparatorChar;
                // 判断目标目录是否存在如果不存在则新建之
                if (!Directory.Exists(dstPath))
                    Directory.CreateDirectory(dstPath);
                // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                //如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
              //  string[] fileList = Directory.GetFiles(srcPath);
               string[] fileList = Directory.GetFileSystemEntries(srcPath);

            // 遍历所有的文件和目录
             foreach (string file in fileList)
             {
                  // 先当作目录处理如果存在这个目录就递归Copy该目录下面的文件
                 if(System.IO.Directory.Exists(file))
                 {
                        CopyDir(file, aimPath + System.IO.Path.GetFileName(file));
                   }
                  // 否则直接Copy文件
                 else
                  {
                       System.IO.File.Copy(file, aimPath + System.IO.Path.GetFileName(file),true);
                  }
            }
            catch (Exception ee)
            {
                throw new Exception(ee.ToString());
            }
       }

2.建立本地到远程的链接

        userName 和 passWord为本地pc登陆时的用户名和密码

    private bool connectState(string path, string userName, string passWord)
    {
        bool Flag = false;
        Process proc = new Process();
        try
        {
            proc.StartInfo.FileName = "cmd.exe";
            proc.StartInfo.UseShellExecute = false;
            proc.StartInfo.RedirectStandardInput = true;
            proc.StartInfo.RedirectStandardOutput = true;
            proc.StartInfo.RedirectStandardError = true;
            proc.StartInfo.CreateNoWindow = true;
            proc.Start();
            string dosLine = @"net use " + path + " /User:" + userName + " " + passWord + " /PERSISTENT:YES";
            proc.StandardInput.WriteLine(dosLine);
            proc.StandardInput.WriteLine("exit");
            while (!proc.HasExited)
            {
                proc.WaitForExit(1000);
            }
            string errormsg = proc.StandardError.ReadToEnd();
            proc.StandardError.Close();
            if (string.IsNullOrEmpty(errormsg))
            {
                Flag = true;
            }
            else
            {
                throw new Exception(errormsg);
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.ToString());
        }
        finally
        {
            proc.Close();
            proc.Dispose();
        }
        return Flag;
    }

 

你可能感兴趣的:(c#)