从CFileDialog获取文件大小

时间:2015-05-15 08:06:58

标签: c++ visual-studio-2013 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;
}

如果您有更好的解决方案来获取文件大小,请建议我。

非常感谢你。

1 个答案:

答案 0 :(得分: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