Помогите разобраться с директориями
Есть готовая прога. Открывает .тхт - файлы. Компиляция и последующая установка создают директорию(С:\\Program Files... и т.д.) сама прога копирует файлы в новую директорию, но ссылается на старые файлы(D:\\Новая папка... и т.д. ). Компилятор - Smart Install Maker, но дело видимо в ссылках обращений формы к файлам. Как построить динамическое обращекие проги к cобcтвенной директории?
Вызываете GetCurrentDirectory() (или соответствующий .NET-аналог) сразу после запуска и запоминаете возвращаемое значение как рабочий каталог.
Цитата: Alexander92
Вызываете GetCurrentDirectory() (или соответствующий .NET-аналог) сразу после запуска и запоминаете возвращаемое значение как рабочий каталог.
Благодарю. Все сработало!
Код теперь выглядит так:
char *buf = (char*) malloc(100);
GetCurrentDirectory(100, buf);
Panel6->Caption = buf;
if(ListBox1->ItemIndex==0)
{
RichEdit1->Lines->Clear();
String sd;
sd = buf;
RichEdit1->Lines->LoadFromFile(sd+"\\Books\\Vvedenie.txt");
}
if(ListBox1->ItemIndex==1)
{
RichEdit1->Lines->Clear();
RichEdit1->Lines->LoadFromFile(sd+"\\Books\\Osnovi.txt");
}
RichEdit1 - отказывается принимать значение типа char в адресной строке, а через строку sd; работает, как ни странно, нормально...
Цитата: GALAVA
Как построить динамическое обращекие проги к cобcтвенной директории?
Что понимается под собственной директорией? Рабочий каталог или каталог где программа лежит?
Цитата: GALAVA
Код теперь выглядит так:
char *buf = (char*) malloc(100);
GetCurrentDirectory(100, buf);
Panel6->Caption = buf;
if(ListBox1->ItemIndex==0)
{
RichEdit1->Lines->Clear();
String sd;
sd = buf;
RichEdit1->Lines->LoadFromFile(sd+"\\Books\\Vvedenie.txt");
}
if(ListBox1->ItemIndex==1)
{
RichEdit1->Lines->Clear();
RichEdit1->Lines->LoadFromFile(sd+"\\Books\\Osnovi.txt");
}
А где вызов free() после malloc()? Или дальше по коду?