diff options
Diffstat (limited to 'indra/llfilesystem/llfilesystem.cpp')
| -rw-r--r-- | indra/llfilesystem/llfilesystem.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/indra/llfilesystem/llfilesystem.cpp b/indra/llfilesystem/llfilesystem.cpp index 541266af4f..cd0ce45049 100644 --- a/indra/llfilesystem/llfilesystem.cpp +++ b/indra/llfilesystem/llfilesystem.cpp @@ -75,13 +75,16 @@ LLFileSystem::LLFileSystem(const LLUUID& file_id, const LLAssetType::EType file_ bool LLFileSystem::getExists(const LLUUID& file_id, const LLAssetType::EType file_type) { LL_PROFILE_ZONE_SCOPED; +#if LL_WINDOWS + const auto filename = ll_convert<std::wstring>(LLDiskCache::metaDataToFilepath(file_id, file_type)); +#else const std::string filename = LLDiskCache::metaDataToFilepath(file_id, file_type); +#endif - llifstream file(filename, std::ios::binary); - if (file.is_open()) + boost::system::error_code ec; + if (boost::filesystem::exists(filename, ec) && boost::filesystem::is_regular_file(filename, ec)) { - file.seekg(0, std::ios::end); - return file.tellg() > 0; + return boost::filesystem::file_size(filename, ec) > 0; } return false; } @@ -118,17 +121,18 @@ bool LLFileSystem::renameFile(const LLUUID& old_file_id, const LLAssetType::ETyp // static S32 LLFileSystem::getFileSize(const LLUUID& file_id, const LLAssetType::EType file_type) { +#if LL_WINDOWS + const auto filename = ll_convert<std::wstring>(LLDiskCache::metaDataToFilepath(file_id, file_type)); +#else const std::string filename = LLDiskCache::metaDataToFilepath(file_id, file_type); +#endif - S32 file_size = 0; - llifstream file(filename, std::ios::binary); - if (file.is_open()) + boost::system::error_code ec; + if (boost::filesystem::exists(filename, ec) && boost::filesystem::is_regular_file(filename, ec)) { - file.seekg(0, std::ios::end); - file_size = (S32)file.tellg(); + return static_cast<S32>(boost::filesystem::file_size(filename, ec)); } - - return file_size; + return 0; } bool LLFileSystem::read(U8* buffer, S32 bytes) |
