0

这是一个 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;
    }
}
4

3 回答 3

0

尝试:

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

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

于 2012-06-04T15:16:28.350 回答
0

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

CopyFiles(a, a.Replace("D:\\Source\\", "\\\\192.168.1.201\\Source1\\New\\"));
于 2012-06-04T15:19:52.057 回答
0

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

于 2012-06-04T15:22:25.303 回答