Filesystem: added some checks
This commit is contained in:
parent
1d69bdd770
commit
d546d8442f
@ -1,4 +1,5 @@
|
|||||||
#include "../filesystem.hpp"
|
#include "../filesystem.hpp"
|
||||||
|
#include <cstring>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
FSLib::Directory::Directory( const string &path_ ) : dir_path( path_ ) {}
|
FSLib::Directory::Directory( const string &path_ ) : dir_path( path_ ) {}
|
||||||
@ -19,6 +20,7 @@ FSLib::Directory::Iterator::Iterator( const Directory &d_,
|
|||||||
: d( opendir( d_.path() ) ), current_entry( current_entry_ ) {}
|
: d( opendir( d_.path() ) ), current_entry( current_entry_ ) {}
|
||||||
|
|
||||||
FSLib::Directory::Iterator::~Iterator() {
|
FSLib::Directory::Iterator::~Iterator() {
|
||||||
|
if( d )
|
||||||
closedir( d );
|
closedir( d );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,7 +46,8 @@ string FSLib::canonical( const string &path ) {
|
|||||||
bool FSLib::isDirectory( const string &path ) {
|
bool FSLib::isDirectory( const string &path ) {
|
||||||
struct stat path_stat;
|
struct stat path_stat;
|
||||||
|
|
||||||
stat( path.c_str(), &path_stat );
|
if( stat( path.c_str(), &path_stat ) != 0 )
|
||||||
|
return false;
|
||||||
|
|
||||||
return S_ISDIR( path_stat.st_mode );
|
return S_ISDIR( path_stat.st_mode );
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "../filesystem.hpp"
|
#include "../filesystem.hpp"
|
||||||
#include <Shlwapi.h>
|
#include <Shlwapi.h>
|
||||||
|
#include <cstring>
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
|
||||||
FSLib::Directory::Directory( const string &path_ ) : dir_path( path_ ) {
|
FSLib::Directory::Directory( const string &path_ ) : dir_path( path_ ) {
|
||||||
@ -63,7 +64,8 @@ string FSLib::canonical( const string &path ) {
|
|||||||
bool FSLib::isDirectory( const string &path ) {
|
bool FSLib::isDirectory( const string &path ) {
|
||||||
struct _stat path_stat;
|
struct _stat path_stat;
|
||||||
|
|
||||||
_wstat( path.c_str(), &path_stat );
|
if( _wstat( path.c_str(), &path_stat ) != 0 )
|
||||||
|
return false;
|
||||||
|
|
||||||
return path_stat.st_mode & _S_IFDIR;
|
return path_stat.st_mode & _S_IFDIR;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user