refactor
This commit is contained in:
parent
8e2ebf05b8
commit
49e518ac19
@ -143,11 +143,12 @@ public:
|
||||
FILE_FLAG_BACKUP_SEMANTICS |
|
||||
(directory ? FILE_ATTRIBUTE_DIRECTORY : FILE_ATTRIBUTE_NORMAL);
|
||||
auto share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
|
||||
auto handle =
|
||||
::CreateFileA(file_path.c_str(), GENERIC_READ, share_mode, nullptr,
|
||||
OPEN_EXISTING, static_cast<DWORD>(attributes), nullptr);
|
||||
FILE_BASIC_INFO fi{};
|
||||
::GetFileInformationByHandleEx(handle, FileBasicInfo, &fi, sizeof(fi));
|
||||
auto handle = ::CreateFileA(
|
||||
file_path.c_str(), GENERIC_READ, static_cast<DWORD>(share_mode),
|
||||
nullptr, OPEN_EXISTING, static_cast<DWORD>(attributes), nullptr);
|
||||
FILE_BASIC_INFO basic_info{};
|
||||
::GetFileInformationByHandleEx(handle, FileBasicInfo, &basic_info,
|
||||
sizeof(basic_info));
|
||||
if (not directory) {
|
||||
auto opt_size = utils::file::file{file_path}.size();
|
||||
if (not opt_size.has_value()) {
|
||||
@ -162,11 +163,14 @@ public:
|
||||
: utils::divide_with_ceiling(file_info.FileSize,
|
||||
WINFSP_ALLOCATION_UNIT) *
|
||||
WINFSP_ALLOCATION_UNIT;
|
||||
file_info.FileAttributes = fi.FileAttributes;
|
||||
file_info.ChangeTime = static_cast<UINT64>(fi.ChangeTime.QuadPart);
|
||||
file_info.CreationTime = static_cast<UINT64>(fi.CreationTime.QuadPart);
|
||||
file_info.LastAccessTime = static_cast<UINT64>(fi.LastAccessTime.QuadPart);
|
||||
file_info.LastWriteTime = static_cast<UINT64>(fi.LastWriteTime.QuadPart);
|
||||
file_info.FileAttributes = basic_info.FileAttributes;
|
||||
file_info.ChangeTime = static_cast<UINT64>(basic_info.ChangeTime.QuadPart);
|
||||
file_info.CreationTime =
|
||||
static_cast<UINT64>(basic_info.CreationTime.QuadPart);
|
||||
file_info.LastAccessTime =
|
||||
static_cast<UINT64>(basic_info.LastAccessTime.QuadPart);
|
||||
file_info.LastWriteTime =
|
||||
static_cast<UINT64>(basic_info.LastWriteTime.QuadPart);
|
||||
::CloseHandle(handle);
|
||||
return api_error::success;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user