从 CFileDialog 获取文件大小
Get File size from CFileDialog
我是 Visual Studio C++ 的新手。我正在使用 CFileDialog 从用户输入中获取文件名和文件路径。现在我想使用加载过程的进度控制,用户必须等待取决于您的输入文件大小。现在我通过使用 CFileDialog 获得了文件名和文件路径,但我不知道如何获得用户输入的文件大小。
我正在使用下面的方法,它总是 return 为零。
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 方法是使用 GetFileSize()
。
但是如果您查看不首先打开文件的 MFC 替代方案,您可能会查看 this SO question。
我是 Visual Studio C++ 的新手。我正在使用 CFileDialog 从用户输入中获取文件名和文件路径。现在我想使用加载过程的进度控制,用户必须等待取决于您的输入文件大小。现在我通过使用 CFileDialog 获得了文件名和文件路径,但我不知道如何获得用户输入的文件大小。
我正在使用下面的方法,它总是 return 为零。
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 方法是使用 GetFileSize()
。
但是如果您查看不首先打开文件的 MFC 替代方案,您可能会查看 this SO question。