使用NetworkCredential进行文件传输

时间:2010-01-05 09:28:42

标签: c#

使用C#.Net将文件从一台机器传输到另一台机器而没有套接字代码如下:

string filePath = "C:\\tags.txt";
try
{
    WebClient client = new WebClient();
    string uName = "myUserName", password ="myPassword";
    NetworkCredential nc = new NetworkCredential(uName, password); 
    Uri addy = new Uri("\\192.168.1.28\\Files\\ tags.txt");
    client.Credentials = nc;
    byte[] arrReturn = client.UploadFile(addy, filePath);
    Console.WriteLine(arrReturn.ToString());
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
} 

“192.168.1.28 \ Files \ tags.txt” - >这是另一台机器IP和位置 当我调试Uri类中发生的错误时。

错误是 - > Invalid URI: The format of the URI could not be determined.

如果位置在共享位置,我可以将文件发送到目标计算机 即使文件夹未共享,我也需要将文件发送到相应的位置。

以上代码是否正确?

1 个答案:

答案 0 :(得分:0)

你试过像File.Copy()这样的事吗?我不确定File.Copy是否使用Windows凭据。如果是,那么这是在两台计算机之间传输文件的最简单方法。

client.UploadFile()也可以使用两个字符串参数,而不是URI和字符串;您可以尝试通过字符串发送URI。

你写Uri的地方你需要在ip

前加上4个斜杠
//This is unrelated
//System.Text.Encoding.ASCII.GetString(arrReturn)