我想使用提供的代码找出文件的大小并将结果传递到我的文件对象中。它只会传递文件大小,如果它是一个特定的扩展名,这个函数完美工作,我唯一的问题是ifile.tellg()传递-1的文件大小为每个文件大小。找出文件的大小C++
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();
}
}
}
}
}`
这是'boost :: filesystem'吗?你不能只使用['file_size'](http://www.boost.org/doc/libs/1_53_0/libs/filesystem/doc/reference.html#file_size)吗? –
“我遇到的唯一问题是ifile.tellg()传递的文件大小”。也许你可以告诉我们你遇到的问题是什么? –
问题现在说,对不起。 – Tas