Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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#_Visual Studio 2012 - Fatal编程技术网

远程文件到变量(C#)

远程文件到变量(C#),c#,visual-studio-2012,C#,Visual Studio 2012,我正在尝试为旧Toontown Online使用的特定类型的文件创建一个读取器。它是一个patcher.ver。我试着从它所在的页面上用字典读取变量,但似乎无法让它工作 WebRequest request = WebRequest.Create(Form1.patcherBaseURL + "/patcher.ver"); WebResponse response = request.GetResponse(); Stream data = response.GetResponseStream

我正在尝试为旧Toontown Online使用的特定类型的文件创建一个读取器。它是一个
patcher.ver
。我试着从它所在的页面上用字典读取变量,但似乎无法让它工作

WebRequest request = WebRequest.Create(Form1.patcherBaseURL + "/patcher.ver");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
    html = sr.ReadToEnd();
    var dic = File.ReadAllLines(html)
        .Select(l => l.Split(new[] { '=' }))
        .ToDictionary(s => s[0].Trim(), s => s[1].Trim());
    string PatchVerStrServer = dic["PATCHER_VERSION_STRING_SERVER"];
这就是我试图使用的代码。但是,我不断收到异常
“路径中的非法字符”

我试图读取的文件位于:


如果你能帮忙,谢谢你!我是C#新手,似乎找不到任何与此相关的内容。

请尝试下面的代码。html中有一些行被注释掉了,所以我使用了where来跳过这些行

WebRequest request = WebRequest.Create(Form1.patcherBaseURL + "/patcher.ver");
WebResponse response = request.GetResponse();
Stream data = response.GetResponseStream();
string html = String.Empty;
using (StreamReader sr = new StreamReader(data))
{
    html = sr.ReadToEnd();
    var dic = html
        .Split (new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries)
        .Where (line => !line.StartsWith("#"))        // Skip commented out lines
        .Select(line => line.Split(new[] { '=' }, 2)) // Beware: some values have spaces
        .ToDictionary(token => token[0].Trim(), token => token[1].Trim());

    string patchVerStrServer = dic["PATCHER_VERSION_STRING_SERVER"];
}

那么
html
的价值是什么?它实际上是一个文件名吗?再看一遍,大概
html
http://dolimg.com/toontown/uk/patcher.ver
。现在,这不是一个文件名-你为什么要用它作为一个文件名?这就是
File.ReadAllLines
所做的。我让它下载并读取带有该代码的patcher.ver文件,以将变量添加到字典中。html的值只是我从patcher.ver文件中获得的数据,我假设是的,它是。现在看看您是如何使用它的:
File.ReadAllLines(html)
。阅读
文件的文档。ReadAllLines
。您期望该方法做什么,它实际将做什么?好的,您已经有了一个
StreamReader
-所以只需调用
ReadLine()
,直到它返回null,然后将您读取的每一行添加到
列表中。但在你这么做之前,试着想一想下一次你是如何在问之前找出你做错了什么的。(你可能仍然需要问如何解决这个问题,但它不包括永远不会工作的代码。)这实际上是可行的,我只需要弄清楚如何将变量从模块发送到Form1 lol。。谢谢我几乎可以肯定您的代码不是问题所在,但当我尝试将其从模块传递到Form1时,它不起作用,并返回一个空字符串“”。。除非我进入模块。但我不知道如何返回字符串。。。如果你能帮上忙,我将不胜感激!我一直到处找。。但找不到将其作为模块的原因。无法工作..您需要使用正在显示的窗体实例将变量传递给窗体。请参阅以下帖子中的我的双表单项目: