2016-09-29 5 views
0

Я пытаюсь скопировать файл, который находится на сервере, и все, что у меня есть, это путь к нему в формате URI.
Я пытался реализовать копирование в C# .NET 4.5, но похоже, что CopyFile не подходит для обработки форматов URI.
Итак, я использовал IronPython с shutil, но похоже, что он также не подходит для путей формата 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

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

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(); 
+0

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

1

С Python

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

urlretrieve

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

+0

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