下载 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 文件时路径错误中的非法字符的主要内容,如果未能解决你的问题,请参考以下文章
错误1324 文件夹路径“My pictures”包含非法字符。