Ответ 1
Файл dirent.h не является файлом заголовка С++ Standard. Поскольку вы находитесь в Windows, вы, вероятно, захотите использовать FindFirstFile и связанные с ним функции, объявленные в windows.h
Когда я включаю dirent.h
(#include<dirent.h>
) в Visual Studio 2005, я получаю сообщение об ошибке:
Неустранимая ошибка C1083: Не удается открыть файл include: 'dirent.h': Нет такого файла или каталога
Я новичок в С++; может ли кто-нибудь предложить мне решение этой ошибки?
Файл dirent.h не является файлом заголовка С++ Standard. Поскольку вы находитесь в Windows, вы, вероятно, захотите использовать FindFirstFile и связанные с ним функции, объявленные в windows.h
В сообщении об ошибке говорится все. Файл не существует или он не находится в правильном каталоге. Проверьте этот веб-сайт. Он включает бесплатную реализацию dirent.h
.
Вы должны добавить каталог, в котором находится файл, в "дополнительные включенные папки" в свойствах проекта Visual Studio.
Попробуйте включить только 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;
}
}