2016-09-29 176 views
0

我想複製一個服務器上的文件,我得到的只是它的URI格式路徑。
我一直在試圖在C#.NET 4.5中實現複製,但似乎像CopyFile處理URI格式不好。
所以我用shutil使用了IronPython,但看起來它對於URI格式的路徑也不好。從URI格式路徑複製文件到本地路徑

如何獲得該文件本地?

private string CopyFile(string from, string to, string pythonLibDir, string date) 
{ 
    var dateTime = DateTime.Today; 
    if (dateTime.ToString("yy-MM-dd") == date) 
    { 
     return ""; 
    } 
    var pyEngine = Python.CreateEngine(); 
    var paths = pyEngine.GetSearchPaths(); 
    paths.Add(pythonLibDir); 
    pyEngine.SetSearchPaths(paths); 
    pyEngine.Execute("import shutil\n" + 
        "shutil.copyfile('" + from + "', '" + to + "')"); 
    return dateTime.ToString("yy-MM-dd"); 
} 

我從xml配置文件中獲取所有路徑。

+0

分享你做了什麼至今..所以我們可以添加到它..您輕鬆使用代碼,點好讓我們開始.. –

回答

1

你可以使用一個webclient,然後獲取特定文件夾上的文件。

using (WebClient wc = new WebClient()) 
    wc.DownloadFile("http://sitec.com/web/myfile.jpg", @"c:\images\xyz.jpg"); 

,或者您也可以使用:HttpWebRequest INC萬一你只是想從文件中讀取從服務器的內容。

var http = (HttpWebRequest)WebRequest.Create("http://sitetocheck.com"); 
var response = http.GetResponse(); 

var stream = response.GetResponseStream(); 
var sr = new StreamReader(stream); 
var content = sr.ReadToEnd(); 
+0

嗯,好像我與IP各地做到了。起初,我試圖用C#打開遠程文件,這是一個痛苦的assm,但沒有考慮使用C#來複制。我剛剛跳到IP。謝謝 - 它的作品。 –

1

使用Python

import urllib 
urllib.urlretrieve("http://www.myserver.com/myfile", "myfile.txt") 

urlretrieve

複製由URL表示到本地文件的網絡對象,如果需要的話。如果URL指向本地文件,或者該對象的有效緩存副本存在,則不會複製該對象。

+0

我認爲這很好,但如果我能夠擺脫IP,那麼我會做到這一點。 –