Здравствуйте, Lifewalker, Вы писали:
L>Чел хочет в папке с программой создать пару файлов! L>Видимо, файлы данных или конфиги. Это нормально?
ДА!
L> Его не учили, что есть места для пользователя, а есть места для программ?
Вас не учили что должно быть так, как хочет пользователь?
L> Он не врубается, что так делать нельзя, ну или по меньшей мере нелогично! Господи, куда катимся...
А я уже давно хочу ржавой секирой убивать аффтароф, чьи творения интенсивно срут мне в Documents and Settings и не позволяют задать кастомный путь. Уж лучше пусть хранят все рядом с собой. Так куда удобнее.
Почему кто то решает за меня, что и где у меня должно лежать?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Аноним, Вы писали:
А>Как можно получить путь папки где лежит моя программа? А>Вообщем надо создать пару файлов в папке с программой, не могу понять как получить этот самый путь. А>Заранее благодарен.
Коллеги, вы просмотрели, похоже, вторую строку вопроса. Чел хочет в папке с программой создать пару файлов! Видимо, файлы данных или конфиги. Это нормально? Его не учили, что есть места для пользователя, а есть места для программ? Он не врубается, что так делать нельзя, ну или по меньшей мере нелогично! Господи, куда катимся...
Здравствуйте, CreatorCray, Вы писали:
К>>А конфиг, определяющий — писать а АппДата или рядом с экзешником — где его-то хранить? "Quis custodiet ipsos custodes?" CC>да хотяб в том же реестре. Если ключа нет — пишет в аппдата. ключ есть — пишет туда куда указано. CC>в самой винде ж например предусмотрели перенос интернет кэша и еще пачки папок. почему бы не сделать так для любой проги?
А я, меж тем, издевался
Правильный ответ — хранить рядом с экзешником, либо считать дефолтом размещение данных рядом с экзешником (а инсталлятор пусть в реестр пишет, что хранить нужно в АппДата).
Иное поведение ломает возможность создания портабельных программ. Ибо что это за портабельная программа, для которой нужно что-то в реестр писать?
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, CreatorCray, Вы писали:
CC>>Это не проблема. Просто надо дать простую возможность указать для каждой программы путь к ее данным. Пусть по умолчанию будет в аппдата, но дайте возможность это изменить.
К>А конфиг, определяющий — писать а АппДата или рядом с экзешником — где его-то хранить? "Quis custodiet ipsos custodes?"
да хотяб в том же реестре. Если ключа нет — пишет в аппдата. ключ есть — пишет туда куда указано.
в самой винде ж например предусмотрели перенос интернет кэша и еще пачки папок. почему бы не сделать так для любой проги?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Аноним, Вы писали:
А>Мсье ничего не слышал про Portable-программы ? Какать в Documents and Settings (ну или в Users в параноидальной висте) крайне не рекомендуется, равно как и в реестр. Так что конфиг рядом вполне имеет право на жизнь.
Неа, никогда не слышал о таких странных программах. Слышал только краем уха, что портабельные программы бывают пишут их с какими-то жуткими дополнительными условностями, подгоняя под конкретную платформу. Ну, разве что Жаба-аппликухи в последнее время можно писать совершенно не думая о платформенной привязке. И конфиги там, ежели использовать Нетбинз (не знаю как в других средах разработки), сами себя пишут куда надо.
Получить путь к папке где лежит exe файл
От:
Аноним
Дата:
16.11.08 23:55
Оценка:
Как можно получить путь папки где лежит моя программа?
Вообщем надо создать пару файлов в папке с программой, не могу понять как получить этот самый путь.
Заранее благодарен.
17.11.08 18:31: Перенесено модератором из 'C/C++' — Кодт
Здравствуйте, Lifewalker, Вы писали:
L>Коллеги, вы просмотрели, похоже, вторую строку вопроса. Чел хочет в папке с программой создать пару файлов! Видимо, файлы данных или конфиги. Это нормально? Его не учили, что есть места для пользователя, а есть места для программ? Он не врубается, что так делать нельзя, ну или по меньшей мере нелогично! Господи, куда катимся...
Че кипятимся-то ? Писать нельзя, читать — можно.
Мож, человек хотел там иметь файлы, которые прога только читает, и это абсолютно нормально.
Здравствуйте, _Ursus_, Вы писали:
_U_>Че кипятимся-то ? Писать нельзя, читать — можно. _U_>Мож, человек хотел там иметь файлы, которые прога только читает, и это абсолютно нормально.
Вот пусть эти файлы туда и кладёт инсталлятор. Как получить путь к своей программе — тема заезженная до упора.
Но топикстартер хочет писать туда, от этого и кипятюся.
[Skip]
L>> Его не учили, что есть места для пользователя, а есть места для программ? CC>Вас не учили что должно быть так, как хочет пользователь?
L>> Он не врубается, что так делать нельзя, ну или по меньшей мере нелогично! Господи, куда катимся... CC>А я уже давно хочу ржавой секирой убивать аффтароф, чьи творения интенсивно срут мне в Documents and Settings и не позволяют задать кастомный путь. Уж лучше пусть хранят все рядом с собой. Так куда удобнее. CC>Почему кто то решает за меня, что и где у меня должно лежать?
Попробуйте пописать для параноидальной висты — перестанете хотеть.
Здравствуйте, Roman Odaisky, Вы писали:
CC>>Почему кто то решает за меня, что и где у меня должно лежать? RO>Зайдем издалека. RO>Ты же использовал Unix?
Там такое же говно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Отвечу тут для Danchik, потому как при попытке ответить на его сообщение сообщает что я не могу писать в топик "мусор".
Это не проблема. Просто надо дать простую возможность указать для каждой программы путь к ее данным. Пусть по умолчанию будет в аппдата, но дайте возможность это изменить.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re: Получить путь к папке где лежит exe файл
От:
Аноним
Дата:
17.11.08 14:44
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Как можно получить путь папки где лежит моя программа? А>Вообщем надо создать пару файлов в папке с программой, не могу понять как получить этот самый путь. А>Заранее благодарен.
Здравствуйте, CreatorCray, Вы писали:
CC>Это не проблема. Просто надо дать простую возможность указать для каждой программы путь к ее данным. Пусть по умолчанию будет в аппдата, но дайте возможность это изменить.
А конфиг, определяющий — писать а АппДата или рядом с экзешником — где его-то хранить? "Quis custodiet ipsos custodes?"
... << RSDN@Home 1.2.0 alpha 4 rev. 1111>>
Перекуём баги на фичи!
Re[2]: Получить путь к папке где лежит exe файл
От:
Аноним
Дата:
17.11.08 23:37
Оценка:
Здравствуйте, Lifewalker, Вы писали:
L>Коллеги, вы просмотрели, похоже, вторую строку вопроса. Чел хочет в папке с программой создать пару файлов! Видимо, файлы данных или конфиги. Это нормально? Его не учили, что есть места для пользователя, а есть места для программ? Он не врубается, что так делать нельзя, ну или по меньшей мере нелогично! Господи, куда катимся...
Мсье ничего не слышал про Portable-программы ? Какать в Documents and Settings (ну или в Users в параноидальной висте) крайне не рекомендуется, равно как и в реестр. Так что конфиг рядом вполне имеет право на жизнь.
Здравствуйте, Lifewalker, Вы писали:
L>Неа, никогда не слышал о таких странных программах.
имеются ввиду программы, которые можно например таскать на флэшке и запускать на любом компе — очень удобно иметь всегда под рукой настроенные ICQ или почтовый клиент, естественно что при этом никаких реестров и documents and settings — все настройки в файле рядом с программой
Здравствуйте, Кодт, Вы писали:
К>>>А конфиг, определяющий — писать а АппДата или рядом с экзешником — где его-то хранить? "Quis custodiet ipsos custodes?" CC>>да хотяб в том же реестре. Если ключа нет — пишет в аппдата. ключ есть — пишет туда куда указано. CC>>в самой винде ж например предусмотрели перенос интернет кэша и еще пачки папок. почему бы не сделать так для любой проги? К>А я, меж тем, издевался К>Правильный ответ — хранить рядом с экзешником, либо считать дефолтом размещение данных рядом с экзешником
Я имел в виду путь к конфигу хранить можно и в реестре, для параноидальных систем типа свисты.
К>(а инсталлятор пусть в реестр пишет, что хранить нужно в АппДата).
+1
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: Получить путь к папке где лежит exe файл
От:
Аноним
Дата:
19.11.08 09:16
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Правильный ответ — хранить рядом с экзешником, либо считать дефолтом размещение данных рядом с экзешником (а инсталлятор пусть в реестр пишет, что хранить нужно в АппДата).
Есть вариант в реестр вообще не гадить, а просто ключик командной строки предусмотреть. Есть ключик — нас честно проинсталлировали (а инсталлятор создал ярлык для запуска с ключиком), ищем/создаём конфиг в Documents and Settings/Users. Нету ключика — похоже нас с флешки запускают или устанавливали копированием, конфиг ищем/создаём рядом. Ещё вариант без всяких ключиков — проверять тип носителя с которого нас запускают и если он DRIVE_REMOVABLE — автоматом проявлять портабельность, т.е. искать/создавать конфиг рядом.
Кстати, есть крайний вариант — вообще без файла конфига и ключей реестра — всё через командную строку, правда менять ярлык запуска запаришься, да и некузяво. Впрочем, когда параметров немного, вполне может сгодиться.
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, Кодт, Вы писали:
К>>Правильный ответ — хранить рядом с экзешником, либо считать дефолтом размещение данных рядом с экзешником (а инсталлятор пусть в реестр пишет, что хранить нужно в АппДата). А>Есть вариант в реестр вообще не гадить, а просто ключик командной строки предусмотреть. Есть ключик — нас честно проинсталлировали (а инсталлятор создал ярлык для запуска с ключиком), ищем/создаём конфиг в Documents and Settings/Users. Нету ключика — похоже нас с флешки запускают или устанавливали копированием, конфиг ищем/создаём рядом. Ещё вариант без всяких ключиков — проверять тип носителя с которого нас запускают и если он DRIVE_REMOVABLE — автоматом проявлять портабельность, т.е. искать/создавать конфиг рядом. А>Кстати, есть крайний вариант — вообще без файла конфига и ключей реестра — всё через командную строку, правда менять ярлык запуска запаришься, да и некузяво. Впрочем, когда параметров немного, вполне может сгодиться.
Ключик неудобно: появится возможность запускать так и этак. Тем более, если виндоуз ассоциирует приложение с типом файлов (это можно штатно сделать любому юзеру, а не в реестре ковыряться).
Можно проверять наличие конфига в аппдата/реестре; если нет — то считать приложение портабельным.
С другой стороны, а если человек со своей флешкой пришёл на машину, где уже создан аккаунт... Или если человеку хочется иметь несколько сборок?
Так что самый симпатичный вариант — это рядом с программой держать файл "самый первичный конфиг", в котором прописаны условия размещения основного конфига
— в общих юзерах
— в текущем юзере
— в папке запуска
— в произвольной папке
Это буквально одна строчка, с абсолютным, относительным или макросным путём.
Скажем, %MYPROGRAM% означает путь к экзешнику, а %APPDATA%, %USERPROFILE% и %ALLUSERSPROFILE% — штатные переменные окружения виндоуза (XP; про 2K, NT и 9* затруднюсь сказать).
И более того: можно сделать бат-файл
:::: определение каталога, где запущен данный файл (маленькая хитрость)
for %%F in (%0) do set THISDIR=%%~dpF
set THISDIR=%THISDIR:~0,-1%
:::: раскомментировать одно из:
:::: для всех
:: set MYPROGRAMCONFIG=%ALLUSERSPROFILE%\Application Data\MyProgram
:::: для текущего
:: set MYPROGRAMCONFIG=%APPDATA%
:::: для портабельного
:: set MYPROGRAMCONFIG=%THISDIR%\Config1
:::: для произвольного
:: set MYPROGRAMCONFIG=c:\MyProgConfig2
:::: далее запускаем программу, а она будет смотреть на переменную окружения MYPROGRAMCONFIG
MyProgram.exe
Здравствуйте, Аноним, Вы писали:
А>Как можно получить путь папки где лежит моя программа? А>Вообщем надо создать пару файлов в папке с программой, не могу понять как получить этот самый путь. А>Заранее благодарен.
Здравствуйте, CreatorCray, Вы писали:
L>> Он не врубается, что так делать нельзя, ну или по меньшей мере нелогично! Господи, куда катимся... CC>А я уже давно хочу ржавой секирой убивать аффтароф, чьи творения интенсивно срут мне в Documents and Settings и не позволяют задать кастомный путь. Уж лучше пусть хранят все рядом с собой. Так куда удобнее.
Насчёт сранья я ниже сказал, а насчёт custom пути согласен, порой бесит до неприличия.
CC>Почему кто то решает за меня, что и где у меня должно лежать?
Ну почему ж, ты можешь настроить путь для своего профиля и все проги будут "срать" в это место. У меня, например, для этого отдельный хард. Там торренты на дополнительном и пол-свопника с профилями на основном разделе. А масдай и прочее на другом харде. Так что куда удобнее перенастроить расположение Document and Settings чем ломать голову над раздувшейся папкой с прогой какой-нить.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков
Здравствуйте, ZAMUNDA, Вы писали:
CC>>Почему кто то решает за меня, что и где у меня должно лежать? ZAM>Ну почему ж, ты можешь настроить путь для своего профиля Профиль давным давно перенесен с С. Причем его подпапки (инеткэш и проч.) тоже раскиданы в более удобные места.
ZAM>все проги будут "срать" в это место.
Мне не надо чтоб они вообще гадили в профиль. Мне надо чтобы каждая прога гадила исключительно в отведенное ей место. Не в общую помойку, а для каждой проги — свое место.
Практически все старые проги так и делают. А вот с новыми гемор.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока