C# 尝试使用C访问网络位置时出现问题#
我想使用C#访问笔记本电脑中的某个位置,明确的目标是C# 尝试使用C访问网络位置时出现问题#,c#,C#,我想使用C#访问笔记本电脑中的某个位置,明确的目标是 “\\file\doc/”+GetImageNameFromPLC()+”.jpg“ 但我不能用C#来实现这一点,这就是目前的情况 Uri serverUri = new Uri(@"\\file\doc/"+ GetImageNameFromPLC()+".jpg"); WebClient request = new WebClient();
“\\file\doc/”+GetImageNameFromPLC()+”.jpg“
但我不能用C#来实现这一点,这就是目前的情况
Uri serverUri = new Uri(@"\\file\doc/"+ GetImageNameFromPLC()+".jpg");
WebClient request = new WebClient();
request.Credentials = new NetworkCredential("", "");
try {
byte[] newFileData = request.DownloadData(serverUri.ToString());
return newFileData;
}
catch (WebException e)
{
Console.WriteLine(e.ToString());
}
return new byte[0];
}
private string GetImageNameFromPLC()
{
在第一行中,我得到一个错误:
非静态字段、方法或属性需要对象引用
请您建议如何写入字符串“\file\doc/”+GetImageNameFromPLC()+”.jpg好吗?提前感谢您的回复。实际上问题在于Windows UNC路径中的斜杠
/
,请改用\
。而且,您不应该使用WebClient从网络共享下载文件。您可以使用System.IO.File.ReadAllText直接从服务器读取文本内容,我们还需要获取函数的代码GetImageNameFromPLC()
错误也可能存在于其中。您应该改用私有静态
。发生错误的方法可能是静态
(我们在给出的代码中看不到这一点)。您现在有两个选择:
GetImageNameFromPLC()
也设为静态var obj=new…()
),然后调用obj.GetImageNameFromPLC()
)/
而不是\
。还要检查GetImageNameFromPLC()
的返回值-如果它也返回/
,则需要替换它WebClient
将尝试通过HTTP协议访问内容,但网络共享使用SMB协议。您可以像访问本地硬盘上的常规文件一样访问网络文件为什么要将WebClient与共享文件夹一起使用????不要介意路径无效,Windows文件名中不允许使用
/
。如果要读取文件内容,文件。ReadAllText
或文件。ReadAllBytes
就足够了。该路径与您在Windows Explorer中使用的路径相同。发生错误的方法可能是静态的(我们在给出的代码中看不到),因此GetImageNameFromPLC()
也必须是静态的