Environment.CurrentDirectory отображает неверный путь - PullRequest
0 голосов
/ 18 июля 2010

Мне нужно получить определенный файл в моем проекте ASP.NET MVC. В моем проекте есть две папки, назовем их Main и Reference.

Из моего главного я вызываю класс из моего файла Reference.csproj. Оттуда мне нужно добраться до моего TargetFile, который также находится в папке Reference.

Когда я использую AppDomain.CurrentDomain.BaseDirectory, я получаю C:\Project\Main, когда я хочу C:\Project\Reference.

Поэтому я подумал, что мог бы использовать Environment.CurrentDirectory, что, я надеюсь, укажет мне на папку Reference вместо основной, но, к сожалению, выдает C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE. Я также пытался Directory.GetCurrentDirectory(), но я получаю тот же результат.

Мне нужно, чтобы Environment.CurrentDirectory дал мне C:\Project\Reference. Я думаю, что он должен дать мне папку Reference вместо папки Main, потому что она вызывается изнутри Reference, но сейчас она даже не приближается к моей папке Project.

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

1 Ответ

3 голосов
/ 18 июля 2010

Обычный способ найти файлы, которые являются частью приложения ASP.NET (или ASP.NET MVC) - использовать Server.MapPath("~/folder/somefile.txt"), который автоматически преобразуется в абсолютный путь, где ~ - это корень веб-сайта. Независимо от того, на какие сборки вы ссылаетесь в приложении ASP.NET или откуда они все окажутся в папке bin.

...