2013-04-06 2 views
1

Я пытаюсь создать веб-формы в ASP.NET с помощью Visual Studio Express 2012Относительные пути в ASP.Net

мне нужно взять данные из некоторого text boxes, и записать его на Text file.

Это очень простая программа, но У меня возникли проблемы с установкой пути к файлу.

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

Файл, который я хочу, называется Database.txt и находится в D:\Project\bin\Database.txt.

Так что если он вставляет эту папку на рабочий стол, он становится C:\Users\Desktop\Project\bin\Database.txt.

У меня возникли проблемы с настройкой динамического пути, который может найти этот файл независимо от того, где находится папка проекта.

+0

отправить код, в котором вы создаете файл .txt – polin

+0

Где этот файл, на компьютере пользователя или на сервере? Из asp.net вы можете получить доступ только к серверу! –

+0

Я предпочитаю избегать использования абсолютного пути во время записи в файлы. Вы можете использовать метод 'Server.MapPath' для доступа к вашему каталогу приложений. – Raghuveer

ответ

0

Что вы можете сделать, это поместить путь в файл web.config и установить значения в соответствии с требованиями.

Ниже приведен пример кода, который должен помочь вам

Это идет в ваш web.config.

<configuration> 
    <appSettings> 
     <add key="myFilePath" value="C:\\whatever\\Data\\"/> 
    </appSettings> 
</configuration> 

И это, как вы читаете это:

path = System.Web.Configuration.WebConfigurationManager.AppSettings["myFilePath"].ToString(); 
+0

Что делать, если на другом компьютере нет прав доступа к этому пути/доступа? – Raghuveer

+0

ему придется обмениваться папкой для пользователя, который запускает IIS. –

+0

Тогда почему вы не можете использовать 'Server .MapPath'? Вместо установки вручную – Raghuveer

2

Используйте этот код:

public void WriteToFile(String text) 
{ 
    string logFileName = Server.MapPath("~/bin/DataBase.txt"); 
    using (StreamWriter writer = File.AppendText(logFileName)) 
    { 
     writer.WriteLine(text); 
     writer.Flush(); 
     writer.Close(); 
    } 
} 
+0

Благодарим за быстрый ответ! Но это в C грустно, Мой проект основан на VB. Или есть какой-то способ интегрировать эти два?Спасибо заранее! –

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