none
使用 Ado 連接 csv 時, select from 檔名含有多個 . 例如 aaa.bbb.ccc.csv 如何解決 RRS feed

解答

  • 感謝您, 成功了, 至於短檔名 可以用 win32 API GetShortPathName  http://msdn.microsoft.com/en-us/library/aa364989%28v=vs.85%29.aspx 求得 (昨天試了, 但不知要加 [])

    謝謝您

     

    • 已標示為解答 CafeToi 2011年7月29日 上午 10:18
    2011年7月29日 上午 10:17

所有回覆

  • 看起來沒辦法直接處理。

    你能夠先用File.Copy做更名,然後再讀取嗎?

    2011年7月28日 上午 10:45
  • 如果是單個檔, 可行, 但我要讀取某個目錄下的所有 csv, 更名也是個辦法吧, 但似乎不是正解... 因為 windows 支援長檔名已經很久很久了
    2011年7月28日 上午 10:49
  • SQL 語法用 [ ] 框起來可以嗎?


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年7月28日 上午 11:57
  • 不好意思, 可否給個範例 ? Select * From [aaa.bbb.ccc.csv] 是嗎? 不可行, 會報錯
    2011年7月28日 下午 12:38
  • 我試了不行~

     

    請去:http://connect.microsoft.com/ 反映。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2011年7月28日 下午 01:11
  • 我試了半天也沒試出來,或許你可以改用FileInfo來讀CSV,就可以處理這種長檔名了,雖然可能跟你的需求不同,僅供參考。

    FileInfo fi = new FileInfo(@"d:\1.2.3.4.csv");
    string[] list;
    StreamReader sr = fi.OpenText();
    while (sr.Peek() >= 0)
    {
    	list = sr.ReadLine().Split(',');
    	foreach (string s in list)
    	{
    		Console.WriteLine(s);
    	}
    }
    Console.ReadKey();
    



    以上說明若有錯誤請指教,謝謝。
    http://www.dotblogs.com.tw/terrychuang/
    2011年7月29日 上午 01:58
  • ADO只能讀8.3短檔名格式, 您可以考慮依這篇文章所列的規則推算aaa.bbb.ccc.csv對應的短檔名, 然後再讀其短檔名(請將檔案名稱用中括號包起來):

    Windows 如何從長檔名產生 8.3 檔案名稱

    • 已提議為解答 Shadow .Net 2011年7月29日 上午 10:58
    2011年7月29日 上午 09:13
  • 感謝您, 成功了, 至於短檔名 可以用 win32 API GetShortPathName  http://msdn.microsoft.com/en-us/library/aa364989%28v=vs.85%29.aspx 求得 (昨天試了, 但不知要加 [])

    謝謝您

     

    • 已標示為解答 CafeToi 2011年7月29日 上午 10:18
    2011年7月29日 上午 10:17