c#如 局域网文件如何拷贝,有没有大侠相助???我的源码
不知为什么,本地的可以拷贝,但在局域网里就报错?
private   int   MoveDir(string   strSource,string   strDest)   
{   
int   intRet   =   0;   
DirectoryInfo   diSourceDir   =   new   DirectoryInfo(strSource);   
DirectoryInfo   diDestDir   =   new   DirectoryInfo(strDest);   
diDestDir.CreateSubdirectory(diSourceDir.Name);   
DirectoryInfo[]   diArray   =   diSourceDir.GetDirectories();   
FileInfo[]   fiArray   =   diSourceDir.GetFiles();   
string   strDestDir =   string.Empty;   
    
foreach(DirectoryInfo   dir   in   diArray)   
{   
strDestDir   =   strDest.TrimEnd(new   char[]   {'\\'})   +   "\\"   +   diSourceDir.Name;   
MoveDir(dir.FullName,strDestDir);   
}   
foreach(FileInfo   file   in   fiArray)   
{   
file.CopyTo(strDest   +   "\\"   +   diSourceDir.Name   +   "\\"   +   file.Name);   
}   
return   intRet;   

///////////////////////////////////////////////
private void Button1_Click(object sender, System.EventArgs e)
{
string tempstr;
try
{
tempstr="c:\myFolder\myFile.txt";
MoveDir(@"\\192.168.0.68\五联安装\temp","e:") ;
}
catch (Exception ee) 
{
MsgLabel.Text = "操作失败!失败原因:" + ee.ToString();

}

解决方案 »

  1.   

    QA-如何把网络共享目录映射为本地驱动器?
    http://blog.csdn.net/knight94/archive/2006/03/21/631309.aspx
    http://blog.csdn.net/knight94/archive/2006/03/31/645367.aspxQA-如何访问局域网机器上的文件呢?
    可以用net use
    public bool Connect(string remoteHost, string userName, string passWord)
        {
            bool Flag = true;
            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 = false;
                proc.Start();
                string dosLine = @"net use \\" + remoteHost + " " + passWord + " " + " /user:" + userName + ">NUL";
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (proc.HasExited == false)
                {
                    proc.WaitForExit(1000);
                }
                string errormsg = proc.StandardError.ReadToEnd();
                if (errormsg != "")
                {
                    Flag = false;
                }
                proc.StandardError.Close();
            }
            catch (Exception ex)
            {
                Flag = false;
            }
            finally
            {
                try
                {
                    proc.Close();
                    proc.Dispose();
                }
                catch
                {
                }
            }
            return Flag;
        }if (Connect("10.XX.XX.XX", "用户名", "密码"))
    {
        File.Copy(@"\\10.XX.XX.XX\共享目录\111.txt", @"e:\\111.txt", true);
    }
      

  2.   

    你可以用网络映射或者net use先连接对方机器http://community.csdn.net/Expert/TopicView3.asp?id=5137183
      

  3.   

    请问lovvver(www.notsoft.cn) 
    Process proc = new Process();指什么?
      

  4.   

    using System.Diagnostics用来调用外部程序的
      

  5.   

    声明一个进程(process),用以执行外部操作。