Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обращение к файлам на сервере 
V
    Опции темы
Tiberian
Дата 12.5.2008, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.2.2008

Репутация: нет
Всего: нет



      Имеется сайт, в корне которого лежит некий xml файл. При попытке открыть его с помощью метода [XmlFile].Load("~/somexmlfile.xml") среда пытается искать файл в текущей директории, добавляя к ней "~/somexmlfile.xml"... Собственно, вопрос: как же ентот файл открыть?.. Пусть даже он будет в App_Data.
PM MAIL   Вверх
Rififi
Дата 12.5.2008, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1254
Регистрация: 9.3.2008

Репутация: нет
Всего: 36



Tiberian
в win32 надо парсить переменные среды.

Код
private static readonly Regex rxEnvVar = new Regex(@"%(?<Var>[\w_]+)%", RegexOptions.Compiled | RegexOptions.IgnoreCase);

...

// подставить в строку вместо переменных окружения их значения
private static string ExpandStringWithEnvironmentVariables(string path)
{
    return String.IsNullOrEmpty(path) ? null : rxEnvVar.Replace(path,
        new MatchEvaluator(delegate(Match m)
                    {
                        string expanded = Environment.GetEnvironmentVariable(m.Groups["Var"].Value);
                        return expanded ?? m.ToString();
                    }));
}


использование:

Код
string s = Класс.ExpandStringWithEnvironmentVariables(@"%USERPROFILE%\somexmlfile.xml");


(вместо '\' можно использовать системный PathSeparator)

ps. либо воспользоваться Environment.GetFolderPath

Это сообщение отредактировал(а) Rififi - 12.5.2008, 12:37
PM MAIL   Вверх
Tiberian
Дата 12.5.2008, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.2.2008

Репутация: нет
Всего: нет



     В том то и дело, что не в win32... а в ASP.NET... Как в коде обратиться к файлам, которые лежат в App_Data?..
PM MAIL   Вверх
kosten_spb
Дата 13.5.2008, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 2.5.2008

Репутация: нет
Всего: нет



Tiberian
попробуй обратиться к файлу так:
Код

string filePath = Request.PhysicalApplicationPath + "somexmlfile.xml";

PM MAIL WWW ICQ   Вверх
Tiberian
Дата 14.5.2008, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 26.2.2008

Репутация: нет
Всего: нет



kosten_spb, гениально! Я долго смотрел на Request.PhysicalApplicationPath но отвергал его, ибо думал, что он привяжет путь к файлу только на моём компе. Твой пост заставил меня взглянуть на это по-новому =) путь-то этот генериться по ходу выполнения =) всем спасибо, разобрался =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.