我正在尝试复制服务器上的文件,而我所拥有的只是它的URI格式路径。
我一直在尝试在C#.NET 4.5中实现复制,但似乎CopyFile不适合处理URI格式
所以我使用了带有shutil的IronPython,但看起来它对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
,只需要从服务器中读取文件中的内容。
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();
答案 1 :(得分:1)
使用Python
import urllib
urllib.urlretrieve("http://www.myserver.com/myfile", "myfile.txt")
如有必要,将URL表示的网络对象复制到本地文件。如果URL指向本地文件,或者存在该对象的有效缓存副本,则不会复制该对象。