| 174 | } |
| 175 | |
| 176 | int64_t cbm_file_size(const char *path) { |
| 177 | wchar_t *wpath = cbm_path_to_wide(path); |
| 178 | if (!wpath) { |
| 179 | return CBM_NOT_FOUND; |
| 180 | } |
| 181 | WIN32_FILE_ATTRIBUTE_DATA fad; |
| 182 | BOOL ok = GetFileAttributesExW(wpath, GetFileExInfoStandard, &fad); |
| 183 | free(wpath); |
| 184 | if (!ok) { |
| 185 | return CBM_NOT_FOUND; |
| 186 | } |
| 187 | LARGE_INTEGER sz; |
| 188 | sz.HighPart = (LONG)fad.nFileSizeHigh; // cppcheck-suppress unreadVariable |
| 189 | sz.LowPart = fad.nFileSizeLow; // cppcheck-suppress unreadVariable |
| 190 | return (int64_t)sz.QuadPart; |
| 191 | } |
| 192 | |
| 193 | char *cbm_normalize_path_sep(char *path) { |
| 194 | if (path) { |