Removed useless stat call
This commit is contained in:
@@ -67,9 +67,9 @@ namespace lms::core::pathUtils
|
|||||||
return std::filesystem::create_directory(dir);
|
return std::filesystem::create_directory(dir);
|
||||||
}
|
}
|
||||||
|
|
||||||
Wt::WDateTime getLastWriteTime(const std::filesystem::path& file, std::error_code& ec)
|
FileInfo getFileInfo(const std::filesystem::path& file, std::error_code& ec)
|
||||||
{
|
{
|
||||||
Wt::WDateTime res;
|
FileInfo fileInfo;
|
||||||
|
|
||||||
struct stat sb
|
struct stat sb
|
||||||
{
|
{
|
||||||
@@ -81,10 +81,11 @@ namespace lms::core::pathUtils
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
ec = std::error_code{};
|
ec = std::error_code{};
|
||||||
res = Wt::WDateTime::fromTime_t(sb.st_mtime);
|
fileInfo.lastWriteTime = Wt::WDateTime::fromTime_t(sb.st_mtime);
|
||||||
|
fileInfo.fileSize = sb.st_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return fileInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool exploreFilesRecursive(const std::filesystem::path& directory, std::function<bool(std::error_code, const std::filesystem::path&)> cb, const std::filesystem::path* excludeDirFileName)
|
bool exploreFilesRecursive(const std::filesystem::path& directory, std::function<bool(std::error_code, const std::filesystem::path&)> cb, const std::filesystem::path* excludeDirFileName)
|
||||||
@@ -120,6 +121,7 @@ namespace lms::core::pathUtils
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// TODO get status once and then test regular file/directory
|
||||||
if (std::filesystem::is_regular_file(*itPath, ec))
|
if (std::filesystem::is_regular_file(*itPath, ec))
|
||||||
{
|
{
|
||||||
continueExploring = cb(ec, *itPath);
|
continueExploring = cb(ec, *itPath);
|
||||||
|
|||||||
@@ -34,8 +34,13 @@ namespace lms::core::pathUtils
|
|||||||
// Create it if needed
|
// Create it if needed
|
||||||
bool ensureDirectory(const std::filesystem::path& dir);
|
bool ensureDirectory(const std::filesystem::path& dir);
|
||||||
|
|
||||||
|
struct FileInfo
|
||||||
|
{
|
||||||
|
Wt::WDateTime lastWriteTime; // Last write time of the file since Epoch
|
||||||
|
std::uint64_t fileSize{}; // Size of the file in bytes
|
||||||
|
};
|
||||||
// Get the last write time since Epoch
|
// Get the last write time since Epoch
|
||||||
Wt::WDateTime getLastWriteTime(const std::filesystem::path& file, std::error_code& ec);
|
FileInfo getFileInfo(const std::filesystem::path& file, std::error_code& ec);
|
||||||
|
|
||||||
// returns false if aborted by user
|
// returns false if aborted by user
|
||||||
bool exploreFilesRecursive(const std::filesystem::path& directory, std::function<bool(std::error_code, const std::filesystem::path&)> cb, const std::filesystem::path* excludeDirFileName = {});
|
bool exploreFilesRecursive(const std::filesystem::path& directory, std::function<bool(std::error_code, const std::filesystem::path&)> cb, const std::filesystem::path* excludeDirFileName = {});
|
||||||
|
|||||||
@@ -71,16 +71,14 @@ namespace lms::scanner
|
|||||||
{
|
{
|
||||||
FileToScan res;
|
FileToScan res;
|
||||||
|
|
||||||
res.lastWriteTime = core::pathUtils::getLastWriteTime(file, ec);
|
const core::pathUtils::FileInfo fileInfo{ core::pathUtils::getFileInfo(file, ec) };
|
||||||
if (!ec)
|
|
||||||
res.relativePath = std::filesystem::relative(file, mediaLibrary.rootDirectory, ec);
|
|
||||||
if (!ec)
|
|
||||||
res.fileSize = std::filesystem::file_size(file, ec);
|
|
||||||
|
|
||||||
if (!ec)
|
if (!ec)
|
||||||
{
|
{
|
||||||
res.filePath = file;
|
res.filePath = file;
|
||||||
res.mediaLibrary = mediaLibrary;
|
res.mediaLibrary = mediaLibrary;
|
||||||
|
res.relativePath = std::filesystem::relative(file, mediaLibrary.rootDirectory, ec);
|
||||||
|
res.lastWriteTime = fileInfo.lastWriteTime;
|
||||||
|
res.fileSize = fileInfo.fileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
|||||||
Reference in New Issue
Block a user