Получить размер файла из CFileDialog

Я новичок в Visual Studio C ++. Я использую CFileDialog, чтобы получить имя файла и путь к файлу от ввода пользователя. и теперь я хочу использовать контроль прогресса, который загружает процесс, и пользователь должен ждать, зависит от размера вашего входного файла. Теперь я получил имя файла и путь к файлу с помощью CFileDialog, но я не знаю, как получить размер входного файла пользователя.

Я использую метод ниже, и он всегда возвращает ноль.

int FileSize(const char * szFileName)
{
struct stat fileStat;
int err = stat(szFileName, &fileStat);
if (0 != err)
return 0;
return fileStat.st_size;
}

Пожалуйста, предложите мне, если у вас есть лучшее решение, чтобы получить размер файла.

Большое вам спасибо.

0

Решение

Стандартный портативный способ сделать это будет:

long long sz;   // int would be to small for many files !
ifstream ifs(test);
if(!ifs)
return 0;   // when file couldn't be opened
ifs.seekg(0, ios::end);
sz = ifs.tellg();
return sz;

Родной подход Windows будет использовать GetFileSize().

Но если вы посмотрите на альтернативу MFC, которая сначала не открывает файл, вы можете посмотреть на этот ТАК вопрос.

0

Другие решения