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

120
16 июня 2021, 03:10

Интересует правильная возможность назначения пути к папки, в релизной версии программы.

Сейчас я указываю путь так

file1 = "doc/" + "save.txt"

file2 = "doc/2019/" + to_string(num);

но скорее всего это не правильно.

Еще интересует доступ к моим документам в windows и как обычно там создают папку, тоже интересно.

Answer 1

Когда вы указываете относительный путь, то он расчитывается относительно базового пути приложения, который можно получить / изменить функциями:
GetCurrentDirectory
SetCurrentDirectory

Получение пути к папке windows: GetWindowsDirectory

Получение путей к служебным папкам windows:
SHGetFolderPath - deprecated (xp support)
SHGetKnownFolderPath - vista+

Пример для получения моих документов:
SHGetFolderPath:

CHAR my_doc_path[MAX_PATH] { 0 };
HRESULT result = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, my_doc_path);
// my_doc_path = C:\Users\<user_name>\Documents

SHGetKnownFolderPath:

PWSTR ppszPath { nullptr };
HRESULT hr = SHGetKnownFolderPath(FOLDERID_Documents, 0, NULL, &ppszPath);
// ppszPath = C:\Users\<user_name>\Documents
...
CoTaskMemFree(ppszPath); // не забыть освободить память

UPD1: Для рекурсивного создания пути (когда одна или несколько подпапок могут не существовать) используется функция SHCreateDirectoryEx

READ ALSO
Почему C++ может преобразовать int* в const int*, но с ** так же не может?

Почему C++ может преобразовать int* в const int*, но с ** так же не может?

Есть такой код (ничего не делает, приведён просто для примера):

95
Не подключается Jquery к Bitrix 1C

Не подключается Jquery к Bitrix 1C

Подскажите , не могу ни как понять , почему не вешается JQuery на BitrixЗалил css, оно подключилось как надо, заливаю JS Он не хочет подключаться

92
Тире между цифрами в регулярном выражении, шаблон ввода

Тире между цифрами в регулярном выражении, шаблон ввода

Подскажите, пожалуйста, по регуляркам

89
пустая строка в таблице html

пустая строка в таблице html

Как сделать одну строку в таблице html пустой, чтобы она была в качестве разделителя?

168