Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Нет доступа к файлаv


Автор: Orsini 13.6.2012, 10:17
Доброго времени суток!
Моя программа не может получить доступ к файлам - текстовым и exe... Компилируется отлично, но запись в файл не производит, прочитать из файла ничего не может (выдает ошибку при попытке использования якобы прочтенных данных). Текстовые файлы проверяются на возможность их чтения и иногда - на запись, для исполняемых файлов проверяется сам факт их существования. И по результатам проверки - доступа к файлам нет или файлы вообще не существуют. Однако файлы хранятся локально, один в папке с программой, другой - на уровень ниже, и я пробовал указывать как абсолютный путь к файлу, так и относительный. Версия С++ - Microsoft Visual Studio 2010.

Вот проверка доступа к текстовым файлам

Код
bool UnaccessibleCfgFiles()
{
    char buffer15[15]= def_CfgCslPath;
    FILE * fileCSlcfg;
    bool ret1= false;
    ret1= (fileCSlcfg= fopen(buffer15, "r"));
    if (ret1== NULL)
       {
          char char_a[122] = def_CSlcneno;
          CharToOemA(char_a, char_a);
          std::cout << char_a <<endl;
          system("pause");
          return ret1;
       };
    std::fclose(fileCSlcfg);
    char buffer11[22]= def_CfgCSPath;
    FILE * fileCScfg;
    bool ret2= false;
    ret2= (fileCScfg= fopen(buffer11, "r+"));
    if (ret2== NULL)
       {
          char char_b[118] = def_CScneno;
          CharToOemA(char_b, char_b);
          std::cout << char_b <<endl;
          system("pause");
          return ret2;
       };
    std::fclose(fileCSlcfg);
    return (ret1&&ret2);
}


а исполняемые файлы я проверяю так

Код
bool FileExists(const char *fname)
{
    return (access(fname, 04)==0);
}


и так тоже пробовал

Код
bool FileExists(LPCTSTR fname)
{
    return ::GetFileAttributes(fname) != DWORD(-1);
}


Модератор: не забываем пользоваться кнопочкой "Код"

Автор: SenkraD 13.6.2012, 11:18
ТС вы пробовали запскать программу не со студии? дело в том, что при открытие текстовых файлов без указания полного пути ищется в текущей папке, а  при запуске со студии текущая директория - это папка, где лежит vcproj-файлик.

Автор: Orsini 13.6.2012, 14:03
Цитата(SenkraD @  13.6.2012,  11:18 Найти цитируемый пост)
ТС вы пробовали запскать программу не со студии?


Да, пробовал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)