Где выглядит приложение при поиске файла? Где он создан? Редко реалистично всегда указывать абсолютный путь. Например. Я попытался сохранить текстовые файлы, которые будут использоваться в приложении Visual Studio 2010 в локальном ящике проектного решения, но всегда получал ошибку во время выполнения.Рабочие каталоги файлов, используемых в приложениях Windows
ответ
Обычно это папка, из которой она была вызвана. Вы можете найти его с помощью _getcwd
: http://msdn.microsoft.com/en-us/library/sf98bd4y%28VS.80%29.aspx
Если вы используете относительный путь, путь, который вы поставляете, объединен с рабочим каталогом процесса.
Очень сложно поддерживать контроль над рабочим каталогом процесса GUI. Это связано с тем, что процессы графического интерфейса, как правило, запускаются множеством разных способов. Более того, диалоги файлов имеют тенденцию изменять рабочий каталог. Наконец, рабочий каталог разделяется между всеми потоками процесса и может быть изменен любым потоком. Есть много подводных камней.
Итак, в процессе графического интерфейса я предлагаю вам никогда не использовать относительные пути. Или, если вы используете относительные пути, вы конвертируете их в абсолютные пути перед их использованием. И выполните это преобразование с четко определенным корневым путем.
Если вы не пишете переносное приложение, вы не должны ожидать, что сможете сохранить его в каталоге, который содержит исполняемый файл. В современных системах исполняемые файлы часто располагаются в каталогах только для чтения.
Если вы хотите сохранить пользовательские настройки, сохраните их в соответствующем месте в профиле пользователя.
С другой стороны, если вы хотите читать файлы, которые вы никогда не изменяете, тогда разумно хранить их вместе с исполняемым файлом. Но даже в этом случае откройте файл, используя полный абсолютный путь. Создайте этот путь, объединив каталог, содержащий исполняемый файл, с относительным путем к файлу.
Таким образом, чтобы подвести итог, вы сказали:
Это редко реалистичное всегда указывать абсолютный путь.
Но я не согласен. Я бы ответил, что использование абсолютного пути очень часто является лучшим вариантом. Но вам не нужно жестко кодировать абсолютный путь. Вы можете и должны создать его во время выполнения.
- 1. Отдельные рабочие каталоги между appdomains
- 2. split .svn и рабочие каталоги
- 3. Сохранение файлов в приложениях Windows Store
- 4. Рабочие каталоги в R, использующие для цикла
- 5. Как указать различные рабочие каталоги в qt-создателе?
- 6. DateTimePicker в приложениях Windows
- 7. Оверлей в приложениях windows
- 8. Поиск файлов в Delphi игнорирует некоторые каталоги Windows,
- 9. Рабочая температура и рабочие каталоги Worklight/MobileFirst для Studio, очистка
- 10. Объединение файлов в разные каталоги?
- 11. Как обрабатывать активацию файлов в приложениях Windows Store/WinJS
- 12. Области Windows Aero в собственных приложениях C#
- 13. Загрузка файлов в веб-приложениях
- 14. Windows Batch File Looping через каталоги для обработки файлов?
- 15. Репликация пакетного файла Windows через каталоги для обработки файлов?
- 16. Буферизация прокрутки в приложениях Windows
- 17. Отношение в приложениях Windows 8.1
- 18. Блокировать даты в приложениях windows
- 19. Вкладки/Windows в приложениях Chrome
- 20. TaskbarItemInfo в универсальных приложениях Windows
- 21. Крючки в приложениях Windows 8
- 22. Использование файлов свойств в веб-приложениях
- 23. IOException удаление файлов, используемых вложений в MailMessage
- 24. JQuery загрузки файлов каталоги пользователей
- 25. Сравнить каталоги по именам файлов
- 26. Исключить каталоги из поиска файлов
- 27. Контейнер fluentd не монтируется k8 Рабочие каталоги через yaml (1.2)
- 28. Копирование файлов в несуществующие каталоги в Python
- 29. Рабочие узлы не запускается корректно в Windows,
- 30. Перемещение файлов в каталоги на основе расширения
Пожалуйста, определите, что вы подразумеваете под «папкой, из которой она была вызвана». –
Исторически, каталог, в котором вы были, когда вы вызывали программу, т. Е. '% CD%'. В настоящее время я считаю, что это зависит от способа запуска программы. Если, например, он запускается с использованием ссылки, это обычно папка, в которой находится программа (.exe). Однако ее можно изменить в свойствах ссылки. Однако я не уверен, что такое настройка по умолчанию для VC. – mrks
А как насчет того, когда процесс изменит рабочий каталог? –