2015-05-15 4 views
0

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

https://msdn.microsoft.com/en-us/library/b569d0t4.aspx –

ответ

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; 

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

Но если вы посмотрите на альтернативу MFC, которая не откроет файл сначала, вы можете посмотреть this SO question.

+0

Спасибо, это работа. –

Смежные вопросы