2012-05-19 5 views
0

У меня есть папка с именем Template в моем решении. Я хочу, чтобы некоторые файлы были скопированы в него и получили доступ к нему. Как я могу установить путь к этому? Будет ли эта папка появляться при развертывании приложения?Как установить путь в C#?

это работает?

File.Move(@"DebriefReportTemplate.docx", @"~\Template\DebriefReportTemplate.docx"); 
+0

Является ли это веб-приложение или окна приложения? –

+0

да это приложение для Windows – aroshlakshan

ответ

0

EDIT: Этот ответ предназначен для приложения ASP.NET.

Если папка Template (включая ее содержимое) является частью веб-проекта, развертывание должно работать автоматически. Если вы хотите добавить файлы в эту папку во время выполнения, вы можете использовать

Server.MapPath(@"~\Template\DebriefReportTemplate.docx") 

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

То же самое относится к приложению Win. Что вам нужно сделать, так это добавить папку и файлы в проект, как Content. Однако вам понадобится проект установки.

+0

В сообщении нет упоминания asp.net, так почему бы предположить, что он его использует? –

+0

Вы правы, но зачем использовать @ "~" для локального пути? Если это не ASP.NET, я должен вам пиво :) –

+0

Это ребята из форм для форм! – aroshlakshan

1

Он не будет создан, если вы не создадите проект установки/развертывания для его создания во время установки или не добавите код в свое приложение, чтобы создать его при первом вызове.

0

Если вы беспокоитесь о существовании папки Template, вы можете просто создать ее в какой-то момент вашего кода.

string path = System.IO.Path.Combine("", "Template"); 
System.IO.Directory.CreateDirectory(path); 

, а затем переместить файл

File.Move(@"DebriefReportTemplate.docx", @"Template\DebriefReportTemplate.docx"); 
+0

Как получить каталог cuurent приложений (каталог, в котором был файл exe)? – aroshlakshan

+0

Вышеприведенный код должен создать папку в папке, содержащей файл .exe. Если вам нужен путь для других целей, вы можете посмотреть здесь: [link] (http://msdn.microsoft.com/en-us/library/aa457089.aspx) – MAV

0

Вы можете использовать

string sourceFile = Path.GetDirectoryName(Application.ExecutablePath)[email protected]"\Template\DebriefReportTemplate.docx"; 
    string destinationFile = @"C:\DebriefReportTemplate.docx"; 

    // To move a file or folder to a new location: 
    System.IO.File.Move(sourceFile, destinationFile); 

Ссылки:

+0

'Path.GetDirectoryName (Application.ExecutablePath)' возвращает текущий путь выполнения приложения. –

Смежные вопросы