Не удается #include <dirent.h> в Visual Studio 2005

Когда я включаю dirent.h (#include<dirent.h>) в Visual Studio 2005, я получаю сообщение об ошибке:

Неустранимая ошибка C1083: Не удается открыть файл include: 'dirent.h': Нет такого файла или каталога

Я новичок в С++; может ли кто-нибудь предложить мне решение этой ошибки?

Ответ 1

Файл dirent.h не является файлом заголовка С++ Standard. Поскольку вы находитесь в Windows, вы, вероятно, захотите использовать FindFirstFile и связанные с ним функции, объявленные в windows.h

Ответ 2

В сообщении об ошибке говорится все. Файл не существует или он не находится в правильном каталоге. Проверьте этот веб-сайт. Он включает бесплатную реализацию dirent.h.

Ответ 3

Вы должны добавить каталог, в котором находится файл, в "дополнительные включенные папки" в свойствах проекта Visual Studio.

Ответ 4

Попробуйте включить только dir.h, и если это не работает, попробуйте io.h

#include <errno.h>
#include <iostream>
#include <io.h>
#include <time.h>
using namespace std;

bool canDelete(int timeCreate);

int main() {
    struct _finddata_t data;
    int handle;
    handle = _findfirst("test.txt", &data);

    if(handle == -1) {
        exit(1);
    }

    if(canDelete(data.time_create)) {
        cout << "Deleting file ...\n\n";
    } else {
        cout << "File ok.\n\n";
    }
}
/**
* @param: the time in seconds that the file was created.
* @return: true if the file was created more than 7 days, 
* false otherwise.
**/
bool canDelete(int time_create) {
    time_t seconds = time(NULL);
    int days = 7;
    int max_time = 60 * 60 * 24 * days;
    int time_passed = seconds - time_create;
    if(time_passed > max_time) {
        return true;
    } else {
        return false;
    }
}