Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
1

Как правильно указать относительный путь к файлу?

04.08.2009, 13:53. Просмотров 4654. Ответов 12

Если открываю файл с именем "filename.ext", оно ищет "\filename.ext". как ону указать, где искать? относительно текущего директория? если пишу: "..\files\filename.ext", оно ищет в "\..\files\filename.ext" (естественно, не находит ничего). в общем, как правильно сказать, что файл нужно искать в "параллельном" с текущим директории?

например:

C#
1
FileStream fs = File.Open(???что сюда писать????, ....);
или лучше по каким ключевым словам поискать где тема растолковывается.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2009, 13:53
Ответы с готовыми решениями:

Как изменить путь к файлу конфигурации
Добрый вечер! Столкнулся с проблемой. В общем задача такая. Пользователь задает имя конфига и...

Как вытянуть путь к файлу из ярлыка?
Подскажите, пожалуйста, как узнать куда указывает ярлык?

Как узнать путь к файлу класса
Как узнать путь к файлу класса?.

Как узнать путь к запущенному exe-файлу
Уже создавал тему, в которой обсуждалось использование Process.Start(); Вопрос такой. У меня есть...

Как указать путь из другого каталога для загрузки DLL сборки
Добрый день ☺ Вопрос. Представим, что есть программа run.exe. В рабочем каталоге есть подкаталоги...

12
Evg
Эксперт CАвтор FAQ
20068 / 7634 / 585
Регистрация: 30.03.2009
Сообщений: 21,345
Записей в блоге: 30
04.08.2009, 13:58 2
По описанию, проблема вроде бы как в другом. Но описание невнятное, а потому на всякий случай напишу. Обратный слэш является управляющим символов внутри строковых констант, поэтому его надо дополнительно экранировать. Т.е. "писать" надо Open("..\\files\\filename.ext").
0
M128K145
Эксперт JavaЭксперт С++
8341 / 3562 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
04.08.2009, 14:12 3
Evg, скорее всего novi4ok опустил символ @ как само собой разумеющееся(иначе оно бы не откомпилировалось)
ЗЫ: сейчас посмотрю что можно сделать
0
M128K145
Эксперт JavaЭксперт С++
8341 / 3562 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
04.08.2009, 14:22 4
Я не знаю в чем у тебя проблема, но у меня все работает
1
Вложения
Тип файла: rar HLP_Path.rar (12.2 Кб, 55 просмотров)
04.08.2009, 14:22
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.08.2009, 17:07  [ТС] 5
пишу просто "filename.ext", получаю filenotfoundexception with message Could not find file "\filename.ext". кто добавил этот слэш?

M128K145, я еще не смотрел вашу прицепку, сейчас гляну. спасибо!
0
Evg
Эксперт CАвтор FAQ
20068 / 7634 / 585
Регистрация: 30.03.2009
Сообщений: 21,345
Записей в блоге: 30
04.08.2009, 17:13 6
Ты можешь нормально выложить код без пространных словесных описаний?
0
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.08.2009, 17:20  [ТС] 7
Цитата Сообщение от Evg Посмотреть сообщение
По описанию, проблема вроде бы как в другом. Но описание невнятное, а потому на всякий случай напишу. Обратный слэш является управляющим символов внутри строковых констант, поэтому его надо дополнительно экранировать. Т.е. "писать" надо Open("..\\files\\filename.ext").
Evg, это не есть случай (к сожалению). слэши я пишу правильно. это я здесь для ясности по одному указал. слэш перед f ругается, если бы в этом была причина, я бы врубился (надеюсь) .

Добавлено через 4 минуты 1 секунду
Цитата Сообщение от Evg Посмотреть сообщение
Ты можешь нормально выложить код без пространных словесных описаний?
код:
FileStream fs = File.Open("filename.ext", FileMode.Open, FileAccess.Read);

Exception.Message: "Could not find file "\filename.ext".
0
Evg
Эксперт CАвтор FAQ
20068 / 7634 / 585
Регистрация: 30.03.2009
Сообщений: 21,345
Записей в блоге: 30
04.08.2009, 17:23 8
Да... выглядит подозрительно
0
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.08.2009, 17:26  [ТС] 9
если:
C#
1
FileStream fs = File.Open("..\\dirname\\filename.ext", FileMode.Open, FileAccess.Read);
, то:

Exception.Message: "Could not find file "\..\dirname\filename.ext".
0
Evg
Эксперт CАвтор FAQ
20068 / 7634 / 585
Регистрация: 30.03.2009
Сообщений: 21,345
Записей в блоге: 30
04.08.2009, 17:33 10
Значит это какая-то фича .net наверное (я на ём не работал) M128K145, что-то про символ @ писал. Посмотри его исходник
0
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.08.2009, 17:37  [ТС] 11
Цитата Сообщение от Evg Посмотреть сообщение
Значит это какая-то фича .net наверное (я на ём не работал) M128K145, что-то про символ @ писал. Посмотри его исходник
если вставляю мои две строчки кода в его исходник - "оно" работает .

если найду (а обязан) - доложу.
0
Evg
Эксперт CАвтор FAQ
20068 / 7634 / 585
Регистрация: 30.03.2009
Сообщений: 21,345
Записей в блоге: 30
04.08.2009, 17:48 12
И покажи код, который печатает текст исключения. Или это где-то в системе пишется?
1
novi4ok
553 / 507 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.08.2009, 18:01  [ТС] 13
Лучший ответ Сообщение было отмечено OwenGlendower как решение

Решение

Цитата Сообщение от Evg Посмотреть сообщение
И покажи код, который печатает текст исключения. Или это где-то в системе пишется?
кажется допер где нужно искать собаку .
переименовываю файл в приложении M128K145, получаю:

Could not find file "d:\.....\text1.txt" !!!!
т.е. exception содержит полный путь искомого файла. а у меня не Windos Form Application, a Smart Device Project, под Windows CE. а там нет drive letters, все начинается просто от некого root (\). второй раз на эти грабли
0
04.08.2009, 18:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2009, 18:01

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

Как указать путь к БД, находящейся в каталоге программы
Добрый день. Я воспользовался готовым примером для создания БД. Так вот, БД создается, если указан...

Как прописать путь к файлу БД для работы на разных ПК
Пишу программу на C# с использование базы данных Microsoft Access. Как написать в коде путь к файлу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru