2016-08-17 5 views
-1

У меня есть веб-интерфейс API, как:Получить расширение файла и объединить полный путь

[Route("api/fileupload/{name}")] 
    public string GetFileWithExtension(string name) 
    { private readonly string _recipientsExcelFilesPath = System.Web.Hosting.HostingEnvironment.MapPath(
     WebConfigurationManager.AppSettings["RecipientsExcelFiles"]); 

     // _recipientsExcelFilesPath gives absolute URL to the directory 
     // name property is a name of file 
     // I would like here get absoulute url + path 
     **C:\Code\MyProject\Project.WebApi\Data\MyExcelFiles.xlsx** 

     } 

Так в основном, этот метод принимает имя файла и должен возвращать полный путь к этому файлу, сохраненный на локальном компьютере + расширение.

В Web API конфигурации У меня есть что-то вроде:

<appSettings> 
<add key="RecipientsExcelFiles" value="~\\Data\\RecipientsExcelFiles\\" /> 
</appSettings> 
+8

Um, файл 'C: \ Code \ MyProject \ Project.WebApi \ Data \ MyExcelFiles' * не имеет * без расширения. Откуда вы ожидаете получить значение '.xlsx'? –

+0

Просто потому, что у вас не было знакомых расширений на вашем телезрителе, ОС и все остальное знали, что он получил расширение. – BugFinder

+0

Если вы уверены, что «абсолютный URL» всегда будет иметь имя файла в конце без расширения. Вы можете подняться на один уровень с помощью разделителя путей и перечислить файлы в этом каталоге, а затем сопоставить с именем файла, а затем извлечь действующее расширение? –

ответ

0

Учитывая абсолютный путь, расширение может быть saparated с GetExtension методом Path, который документально here.

-3

Это для зерноуборочных с именем файла

var fileNamePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); 
Смежные вопросы