Stat::Private::~Private()
{
- if(owner_id)
+ if(owner_id!=INVALID_UID)
HeapFree(GetProcessHeap(), 0, owner_id);
- if(group_id)
+ if(group_id!=INVALID_GID)
HeapFree(GetProcessHeap(), 0, group_id);
}
void Stat::Private::fill_owner_info(Stat::OwnerInfo &result)
{
- if(owner_id)
+ if(owner_id!=INVALID_UID)
result.owner = get_account_name(owner_id);
else
result.owner = "None";
- if(group_id)
+ if(group_id!=INVALID_GID)
result.group = get_account_name(group_id);
else
result.group = "None";
if(handle==INVALID_HANDLE_VALUE)
{
DWORD err = GetLastError();
- if(err==ERROR_FILE_NOT_FOUND)
+ if(err==ERROR_FILE_NOT_FOUND || err==ERROR_PATH_NOT_FOUND)
return Stat();
else
- throw system_error("CreateFile", err);
+ throw system_error(format("CreateFile(%s)", path), err);
}
BY_HANDLE_FILE_INFORMATION info;
}
Stat result;
+ result.exists = true;
if(info.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
result.type = DIRECTORY;
else