我正在尝试使用提供的代码计算文件的大小,并将结果传递给我的文件对象。它只会在具有特定扩展名的情况下传递文件大小,这个函数完美地工作,我遇到的唯一问题是 ifile.tellg() 为每个文件大小传入 -1 的文件大小。
void NonRecursiveProcess(string directory)
{
for(directory_iterator dir_end, dir(directory); dir != dir_end; ++dir)
{
path _path(*dir);
if(!is_directory(_path))
{
for ( vector<ExtensionAbstract*>::iterator it = extensionsAbstract.begin() ; it != extensionsAbstract.end(); ++it)
{
if ( _path.file_string().substr(_path.file_string().find_last_of(".") + 1) == (*it)->GetExtension())
{
std::ifstream ifile(_path.file_string(), std::ifstream::in | std::ifstream::binary );
ifile.seekg(0, std::ios_base::end);
(*it)->AddkB(ifile.tellg());
(*it)->AddFileCount();
}
}
}
}
}`