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