wxStructStat buff;
#if defined(__UNIX__) && (!defined( __OS2__ ) && !defined(__VMS))
- lstat( m_filePath.fn_str(), &buff );
- m_type |= S_ISLNK(buff.st_mode) ? is_link : 0;
+ const bool hasStat = lstat( m_filePath.fn_str(), &buff ) == 0;
+ if ( hasStat )
+ m_type |= S_ISLNK(buff.st_mode) ? is_link : 0;
#else // no lstat()
- wxStat( m_filePath, &buff );
+ const bool hasStat = wxStat( m_filePath, &buff ) == 0;
#endif
- m_type |= (buff.st_mode & S_IFDIR) != 0 ? is_dir : 0;
- m_type |= (buff.st_mode & wxS_IXUSR) != 0 ? is_exe : 0;
+ if ( hasStat )
+ {
+ m_type |= (buff.st_mode & S_IFDIR) != 0 ? is_dir : 0;
+ m_type |= (buff.st_mode & wxS_IXUSR) != 0 ? is_exe : 0;
- m_size = buff.st_size;
+ m_size = buff.st_size;
- m_dateTime = buff.st_mtime;
+ m_dateTime = buff.st_mtime;
+ }
#endif
// __WXWINCE__
#if defined(__UNIX__)
- m_permissions.Printf(wxT("%c%c%c%c%c%c%c%c%c"),
- buff.st_mode & wxS_IRUSR ? wxT('r') : wxT('-'),
- buff.st_mode & wxS_IWUSR ? wxT('w') : wxT('-'),
- buff.st_mode & wxS_IXUSR ? wxT('x') : wxT('-'),
- buff.st_mode & wxS_IRGRP ? wxT('r') : wxT('-'),
- buff.st_mode & wxS_IWGRP ? wxT('w') : wxT('-'),
- buff.st_mode & wxS_IXGRP ? wxT('x') : wxT('-'),
- buff.st_mode & wxS_IROTH ? wxT('r') : wxT('-'),
- buff.st_mode & wxS_IWOTH ? wxT('w') : wxT('-'),
- buff.st_mode & wxS_IXOTH ? wxT('x') : wxT('-'));
+ if ( hasStat )
+ {
+ m_permissions.Printf(wxT("%c%c%c%c%c%c%c%c%c"),
+ buff.st_mode & wxS_IRUSR ? wxT('r') : wxT('-'),
+ buff.st_mode & wxS_IWUSR ? wxT('w') : wxT('-'),
+ buff.st_mode & wxS_IXUSR ? wxT('x') : wxT('-'),
+ buff.st_mode & wxS_IRGRP ? wxT('r') : wxT('-'),
+ buff.st_mode & wxS_IWGRP ? wxT('w') : wxT('-'),
+ buff.st_mode & wxS_IXGRP ? wxT('x') : wxT('-'),
+ buff.st_mode & wxS_IROTH ? wxT('r') : wxT('-'),
+ buff.st_mode & wxS_IWOTH ? wxT('w') : wxT('-'),
+ buff.st_mode & wxS_IXOTH ? wxT('x') : wxT('-'));
+ }
#elif defined(__WIN32__)
DWORD attribs = ::GetFileAttributes(m_filePath.c_str());
if (attribs != (DWORD)-1)