Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > is_dir()


Автор: mclight 14.7.2005, 22:35
народ помогите. в РНР есть is_dir($d) которая провеоает папка ли это.
как ето реализовать в С++?

Автор: LPBOY 14.7.2005, 23:57
Вот так например...

Код

#include <iostream>
#include <tchar.h>
#include <windows.h>
#include <conio.h>
#include <shlwapi.h>

bool is_dir(TCHAR dirname[])
{
WIN32_FIND_DATA w32fd;
HANDLE h = FindFirstFile(dirname, &w32fd);
return (h!=INVALID_HANDLE_VALUE)&&((w32fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)!=0);
}

int _tmain()
{
    TCHAR dirname[]=TEXT("d:\\temp");
    if (is_dir(dirname))
    std::cout<<dirname<<" is dir.";
    getch();
    return 0;
}

Автор: comcon1 15.7.2005, 14:13
Есть в системных вызовах, то так:
Код

bool ISDIR(const char *filename) { 
 struct stat curstat;
 // получаем статистику 
 stat(filename, &curstat);
 return S_ISDIR(curstat.st_mode)
}

Автор: mclight 19.7.2005, 10:04
спасибо большое!

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