在本地网络中复制文件

时间:2012-06-04 15:10:27

标签: c# asp.net

这是一个Web应用程序 我有2台电脑:A:192.168.1.200和B:192.168.1.201,我想要从A到B的复制,这个代码工作是单个电脑,但它不能在网络中工作。

protected void Button1_Click(object sender, EventArgs e)
{
    string sourcePath = @"D:\Source\";

    string[] filePaths = Directory.GetFiles(sourcePath, "*.txt");
    foreach (string a in filePaths)
    {
        CopyFiles(a, a.Replace("D:\\Source\\", "D:\\Source1\\New\\"));
       //CopyFiles(a, a.Replace("D:\\Source\\", "192.168.1.201\\Source1\\New\\"));
    }

}

private  bool CopyFiles(string Source, string Destn)
{
    try
    {
        if (File.Exists(Source) == true)
        {           
            File.Copy(Source, Destn);
            return true;
        }
        else
        {
            Response.Write("Source path . does not exist");
            return false; 
        }
    }
    catch (FileNotFoundException  exFile)
    {
        Response.Write("File Not Found " + exFile.Message);
        return false;
    }
    catch (DirectoryNotFoundException exDir)
    {
        Response.Write("Directory Not Found " + exDir.Message);
        return false;
    }
    catch (Exception ex)
    {
        Response.Write(ex.Message);
        return false;
    }
}

3 个答案:

答案 0 :(得分:0)

尝试:

CopyFiles(a, a.Replace("D:\\Source\\", "\\192.168.1.201\\Source1\\New\\"));

您还需要确保在B上共享Source1文件夹,并且您具有对它的写入权限。

答案 1 :(得分:0)

您是否在接收器计算机上创建了Windows共享“Source1”? 如果您这样做,我会尝试将其安装在您的发送方计算机上并将代码更改为:

CopyFiles(a, a.Replace("D:\\Source\\", "\\\\192.168.1.201\\Source1\\New\\"));

答案 2 :(得分:0)

必须允许您在目标计算机上写入。这里可以使用工作轮,你可以使虚拟驱动器指向网络位置,例如Z:。现在您可以使用本地表示法。但在此之前,请确保远程PC上的权限。