C++ 从CFileDialog获取文件大小

C++ 从CFileDialog获取文件大小,c++,visual-studio-2013,cfiledialog,C++,Visual Studio 2013,Cfiledialog,我是Visual Studio C++的新手。我使用CFileDialog从用户输入中获取文件名和文件路径。现在我想使用进度控制,加载过程和用户必须等待的时间取决于输入文件的大小。现在我使用CFileDialog获得了文件名和文件路径,但我不知道如何获得用户输入的文件大小 我使用下面的方法,它总是返回零 int FileSize(const char * szFileName) { struct stat fileStat; int err = stat(szFileName, &fil

我是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;
}
如果您有更好的解决方案来获得文件大小,请建议我


多谢各位

标准的便携式方法是:

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方法将是使用

但是如果您看到一个MFC替代方案,它没有首先打开文件,那么您可能会看到