我開發了一個C#應用程序,它需要通過HTTP,FTP以及有時還需要本地文件(file://)來訪問許多不同的內容源。使用WebClient訪問本地文件
我想要一個統一的方式,通過不同的協議訪問這些文件,所以我選擇了WebClient來完成這個任務。
它適用於MSDN(FTP,HTTP,本地文件等)中記錄的所有不同協議,但出現了一些問題......在幾次成功請求後,我無法使用URI訪問任何文件對於本地文件(文件:// c:\ some_dir \ somefile.ext)。
我已經檢查過URI是否正確,如果我在瀏覽器中輸入它,它很容易打開文件。我已經認識到一件非常有趣的事情 - 它在本地文件的開頭也很有效。如果我嘗試使用WebClient加載本地文件的內容,那麼在開始時一切正常。
我的計劃是這樣的:
- 主線程開始
- 在主線程上進行一些初始化
- 多個線程從不同的來源下載的東西
- 等待所有線程完成
- 單螺紋加工dowloaded東西
正如我前面所描述的,如果我在第一步中放入WebClient.DownloadData(url)調用,它可以正常工作,但是當我嘗試在第三步的任何線程中訪問完全相同的URI時,獲取任何以「file://」開頭的本地文件。
我用一個非常簡單的代碼來下載/獲取本地文件:
WebClient wc = new WebClient();
data = wc.DownloadData(url);
我不知道什麼可能出問題......也許我將在前面的步驟或阻止我併發線程的東西訪問本地文件?在之前的步驟中,我會從FTP服務器下載內容並通過HTTP,可能會導致問題?如果我在主線程的開頭嘗試,我可以輕鬆訪問任何本地文件。訪問FTP內容時,我也設置了憑據。也許這是我後來要求的效果?
你嘗試使用:文件:/// C:/tmp/myfile.txt,它有3個 「/」 – urlreader
否 - 感謝注意到! –