下载 CSV 文件时路径错误中的非法字符

Posted

技术标签:

【中文标题】下载 CSV 文件时路径错误中的非法字符【英文标题】:Illegal Characters in Path Error When Downloading CSV File 【发布时间】:2013-11-24 19:30:58 【问题描述】:

我需要下载一个 CSV 文件然后阅读它。这是我的代码:

tickerValue = "goog"
Dim strURL As String = "http://ichart.yahoo.com/table.csv?s=" & tickerValue
Dim strBuffer As String = RequestWebData(strURL)
Using streamReader = New StreamReader(strBuffer)
Using reader = New CsvReader(streamReader)

我不断收到此错误:An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll Additional information: Illegal characters in path.

我做错了什么?

其他信息

在我程序的另一部分,我使用了这段代码,它运行良好。

Address = http://www.nasdaq.com/screening/companies-by-industry.aspx?exchange=AMEX&render=download
Dim strBuffer As String = Historical_Stock_Prices.RequestWebData(Address)
Using streamReader = New StringReader(strBuffer)
Using reader = New CsvReader(streamReader)

我的第二个代码和我的问题代码不是同一个概念吗?

【问题讨论】:

在初始化 streamreader 之前,一边研究 strBuffer 的值是多少? @kostasch。 strBuffer 值是 CSV 文件数据。示例:Date,Open,High,Low,Close,Volume,Adj Close 2013-11-11,1009.51,1015.93,1008.00,1010.59,1112600,1010.59 2013-11-08,1008.75,1018.50,1008.50,1016.03,1290800,1016.03 2013-11-07,1022.61,1023.93,1007.64,1007.95,1679600,1007.95 2013-11-06,1025.60,1027.00,1015.37,1022.75,912900,1022.75 2013-11-05,1020.35,1031.65,1017.42,1021.52,1181400,1021.52 2013-11-04,1031.50,1032.37,1022.03,1026.11,1138800,1026.11 2013-11-01,1031.79,1036.00,1025.10,1027.04,1283300,1027.04 2013-10-31,1028.93,1041.52,1023.97,1030.58,1616400,1030.58 @kostasch。我在原始帖子中添加了更多信息。你能看看它并告诉我你的想法吗? 您在第二个 sn-p 中使用 StringReader,您说“有效”。第一个代码,您使用的是流式阅读器 - 这是不同的 【参考方案1】:

本质上,您是在给它一个网址。在您的代码中的某处,它不支持 web url。它可能是流媒体阅读器。它可能是 CsvReader。 这指向哪一行代码?

最好的办法是将文件保存到磁盘,然后从磁盘读取。

更新

这是一个保存到磁盘的示例:

using writer as new StreamWriter("C:\Test.csv")
   writer.Write(strBuffer)
   writer.Close()
end using

这是一个从磁盘读取的示例:

using strReader as new StreamReader("C:\Test.csv")
   ' this code is presumably how it works for reading into the CsvReader:
   using reader as new CsvReader(strReader)
      ' now do your thing
   end using
   strReader.Close()
end using

【讨论】:

您可以尝试不同的 CSVReader,但我不能说。 :) 您是否先尝试了几个文件,然后保存到磁盘然后从磁盘读取?异常是从哪行代码抛出的? 啊!问题是,您将一串数据提供给 StreamReader。 StreamReader 需要磁盘上文件的路径 正如我所说...使用 FileWriter 或 streamwriter 将该文件保存到磁盘,然后使用 StreamReader 读取您刚刚保存到磁盘的文件:) 我已经用一个示例更新了代码以保存到磁盘并读取到磁盘。 不同之处在于,您在第二个代码中使用了 STRINGREADER,而在第一个代码中使用了 STREAMREADER - 这就是问题所在。您需要使用 STRINGREADER 来读取字符串,而不是 STREAMREADER。

以上是关于下载 CSV 文件时路径错误中的非法字符的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio - 路径中的非法字符

错误1324 文件夹路径“My pictures”包含非法字符。

ZipFile.ExtractToDirectory "路径中的非法字符"

如何修复 mex 文件中的非法字符错误

VS配置QtTools的路径时报“路径中具有非法字符”错误

VS配置QtTools的路径时报“路径中具有非法字符”错误