Скопировать файл из пути формата URI в локальный путь

#c# #python #.net #ironpython

#c# #python #.net #ironpython

Вопрос:

Я пытаюсь скопировать файл, который находится на сервере, и все, что у меня есть, это путь к формату URI.
Я пытался реализовать копирование в C # .NET 4.5, но, похоже, CopyFile плохо справляется с форматами URI.
Итак, я использовал IronPython с shutil, но, похоже, он также не подходит для путей формата 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 shutiln"  
                     "shutil.copyfile('"   from   "', '"   to   "')");
    return dateTime.ToString("yy-MM-dd");
}
  

Я беру все пути из файла конфигурации xml.

Комментарии:

1. Поделитесь, что вы сделали до сих пор .. чтобы мы могли добавить к нему .. вам легко использовать код и хороший момент для нас, чтобы начать..

Ответ №1:

вы можете использовать webclient, а затем получить файл в определенной папке.

 using (WebClient wc = new WebClient())
    wc.DownloadFile("http://sitec.com/web/myfile.jpg", @"c:imagesxyz.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();
  

Комментарии:

1. Ну, похоже, я обошел его с помощью IP. Сначала я пытался открыть удаленный файл с помощью C #, и это было проблемой в assm, но я не думал об использовании C # для копирования. Я только что перешел на IP. Спасибо — это работает.

Ответ №2:

С помощью Python

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

urlretrieve

При необходимости скопируйте сетевой объект, обозначенный URL, в локальный файл. Если URL указывает на локальный файл или существует допустимая кэшированная копия объекта, объект не копируется.

Комментарии:

1. Я думаю, что все в порядке, но если я смогу избавиться от IP, я это сделаю.