Я использую dirent.h 1.20 (источник) для окон в VC2013.
Я не могу найти mkdir()
в этом.
Как я должен использовать это? Или я могу создать каталог как-то только с использованием dirent.h?
Заголовок, на который вы ссылаетесь, эффективно превращает ваш (POSIX) dirent.h
звонки в (родные) звонки Windows. Но dirent.h
о _dir_ectory _ent_ries, т.е. чтение каталоги, а не создание из них.
Если хотите Создайте каталог (mkdir()
), вам нужно либо:
mkdir()
вызовите соответствующие (родные) вызовы функций Windows (и я не могу указать такой заголовок для вас), или// UGLY - these two don't belong in the same source...
#include <dirent.h>
#include <windows.h>
// ...
CreateDirectory( "D:\\TestDir", NULL );
// ...
Другое решение было бы взглянуть на Cygwin, которая обеспечивает среду POSIX, работающую в Windows, включая оболочку Bash, набор инструментов компилятора GCC и полную коллекцию заголовков POSIX, таких как dirent.h
, sys/stat.h
, sys/types.h
и т.д., позволяя вам последовательно использовать POSIX API в ваших программах.
Самый простой способ, который помог без использования какой-либо другой библиотеки.
#if defined _MSC_VER
#include <direct.h>
#elif defined __GNUC__
#include <sys/types.h>
#include <sys/stat.h>
#endif
void createDir(string dir) {
#if defined _MSC_VER
_mkdir(dir.data());
#elif defined __GNUC__
mkdir(dir.data(), 0777);
#endif
}
Visual Studio включает в себя <direct.h>
заголовок.
Этот заголовок объявляет _mkdir и _wmkdir, которые могут использоваться для создания каталога, и являются частью библиотек C, включенных в Visual Studio.
Другой «простой» вариант — использовать вызовы API Windows, как указано DevSolar.
Вы можете использовать заголовочный файл sys / types.h и использовать
mkdir(const char*)
способ создать каталог
Ниже приведен пример кода
#include<stdio.h>
#include<string.h>
#include <unistd.h>
#include<sys/stat.h>
#include<sys/types.h>
int main()
{
if(!mkdir("C:mydir"))
{
printf("File created\n");
}
else
printf("Error\n");
}