Я пишу небольшой класс, который может создавать / удалять / переименовывать / искать файлы и каталоги на ПК.
Я успешно написал класс и работаю в Linux.
Когда я пытался запустить тот же код класса в MinGW, он выдавал ошибку.Я мог бы сузить до: функция mkdir в Linux, у Cygwin есть 2 аргумента (имя каталога, разрешения режима), но в MinGW есть только один аргумент (имя каталога).
Мой запрос:способ заставить код работать на обеих ОС.б) Хотя я никогда не использовал, я слышал, что директивы препроцессора можно поместить как #ifdefined ..... # endif ... или что-то в этом роде в) Использование директив препроцессора - хорошая практика программирования.Как я узнал, директивы препроцессора должны использоваться минимально.
Может ли кто-нибудь помочь мне в этом:
Вот мой код, который работает на Linux и Cygwin:
#include "BioDatabase.h"
#include <dirent.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
BioDatabase::BioDatabase() {
string s = getcwd(NULL,0);
changeDirectory(s,"*");
}
BioDatabase::BioDatabase(string directoryName, string extension)
{
changeDirectory(directoryName, extension);
}
bool BioDatabase::createDirectory(string st)
{
if( mkdir(st.c_str(),0755) == -1)
{
cerr <<endl<<"BOSERR-BioDatabase, createDirectory: Path or file function not found or Permission denied\n\n";
return false;
}
flag =1;
return true;
}