Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 尝试使用C访问网络位置时出现问题#_C# - Fatal编程技术网

C# 尝试使用C访问网络位置时出现问题#

C# 尝试使用C访问网络位置时出现问题#,c#,C#,我想使用C#访问笔记本电脑中的某个位置,明确的目标是 “\\file\doc/”+GetImageNameFromPLC()+”.jpg“ 但我不能用C#来实现这一点,这就是目前的情况 Uri serverUri = new Uri(@"\\file\doc/"+ GetImageNameFromPLC()+".jpg"); WebClient request = new WebClient();

我想使用C#访问笔记本电脑中的某个位置,明确的目标是

“\\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()
    也必须是静态的