Как запустить программу в другой папке? - C++

217
14 января 2018, 05:17

Существует у меня функция, которая создает лог.
Как бы я не крутился - файл создается в папке, где запустили программу.
Я решил пойти другим путём, как при запуске .exe заставить работать программу в другой папке?
MVS компилирует мой проект в папку Debug, там и находится .exe, но логи появляются в папке с исходным кодом.

Вот на всякий случай функция создания лога:

void CreateLogFile()
{
    ifstream logg;
    logg.open("latest.txt");//Открываем старый файл лога - latest.txt
    if (bla.is_open())//Если файл существует
    {
        string date;
        logg >> date;//В первой строке записана дата.
        date = date + ".txt";
        logg.close();
        const char * newfilename = date.c_str();
        rename("latest.txt", newfilename);//Переименовываем файл в [date].txt
    }
    logg.close();
    string asdlog = "[" + getTime(1) + "." + getTime(0) + "_" + getTime(2) + "-" + getTime(3) + "-" + getTime(4) + "]";
    //getTime обрабатывает и возвращает время
    asdlog += '\r';
    asdlog += '\n';//По другому не работает перенос строки.
    ofstream lg;
    lg.open("latest.txt");
    lg << asdlog;//Записываем на первую строку дату.
    lg.close();
}

Выглядит это так: http://snap.ashampoo.com/JsChUMDW
Лог выглядит так: http://snap.ashampoo.com/VvT8IsWE

Answer 1

Если я правильно понял вашу проблему , то вам нужно сохранить log программы не в той папке , где находиться ваш .exe, а в какой - то другой вам просто нужно показать этот путь или относительно вашей папке , или относительно системы

logg.open("\log/latest.txt");
logg.open("C:\\mylog\\latest.txt");

При этом папка должна быть созданной.

#include<iostream>
#include<fstream>
using namespace std;
int main()
{
    ofstream wr;//ofstream я выбрал для того , чтобы при отсутствии файла он создался
    /*wr.open("\log/latest.txt");*/ //или так
    wr.open("C:\\log\\new.txt" , ios::app);//используем для записи в файл флаг app(append) то есть дописываем в конец
    wr << "Some content\n";
    wr.close();
}
READ ALSO
Центр фигуры смещается в сторону при увеличении

Центр фигуры смещается в сторону при увеличении

Почему центр фигуры смещается в сторону при увеличении значения радиуса?

187
Ошибка в c++ коде - сбивается ссылка

Ошибка в c++ коде - сбивается ссылка

Здравствуйте! У меня не работает код:

211
Алгоритм перебора

Алгоритм перебора

Вчера я написал вопрос об этой же задаче, слегка улучшил свой алгоритм, но всё таки хотел бы узнать как можно решить её алгоритмом перебора

209
Создать ImageView, чтобы она отображалась пока работает программа

Создать ImageView, чтобы она отображалась пока работает программа

Есть приложение, надо создать ImageView, чтобы она отображалась пока работает программа

176