aboutsummaryrefslogtreecommitdiff
path: root/zencore/filesystem.cpp
diff options
context:
space:
mode:
authorMartin Ridgers <[email protected]>2021-09-16 16:39:07 +0200
committerMartin Ridgers <[email protected]>2021-09-16 16:39:50 +0200
commitfc4ec57f72d3a20df6d06cc8aa8e06ce13fabd1e (patch)
tree0ed5865044cf0fe9b1d43e1eab976b1d4287e249 /zencore/filesystem.cpp
parentUse std::fd::path's character type for FileSysTraveral::Visitor API (diff)
downloadzen-fc4ec57f72d3a20df6d06cc8aa8e06ce13fabd1e.tar.xz
zen-fc4ec57f72d3a20df6d06cc8aa8e06ce13fabd1e.zip
Stubbed out seldom-used *File() functions with a ZEN_ERROR() for Linux
Diffstat (limited to 'zencore/filesystem.cpp')
-rw-r--r--zencore/filesystem.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/zencore/filesystem.cpp b/zencore/filesystem.cpp
index fb22befdf..4b96f057e 100644
--- a/zencore/filesystem.cpp
+++ b/zencore/filesystem.cpp
@@ -205,6 +205,7 @@ CleanDirectory(const std::filesystem::path& Dir)
bool
SupportsBlockRefCounting(std::filesystem::path Path)
{
+#if ZEN_PLATFORM_WINDOWS
ATL::CHandle Handle(CreateFileW(Path.c_str(),
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
@@ -231,11 +232,15 @@ SupportsBlockRefCounting(std::filesystem::path Path)
}
return true;
+#else
+ return false;
+#endif // ZEN_PLATFORM_WINDOWS
}
bool
CloneFile(std::filesystem::path FromPath, std::filesystem::path ToPath)
{
+#if ZEN_PLATFORM_WINDOWS
ATL::CHandle FromFile(CreateFileW(FromPath.c_str(), GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr));
if (FromFile == INVALID_HANDLE_VALUE)
{
@@ -390,11 +395,16 @@ CloneFile(std::filesystem::path FromPath, std::filesystem::path ToPath)
const bool AllOk = (TRUE == SetFileInformationByHandle(TargetFile, FileDispositionInfo, &FileDisposition, sizeof FileDisposition));
return AllOk;
+#else
+ ZEN_ERROR("CloneFile() is not implemented on this platform");
+ return false;
+#endif // ZEN_PLATFORM_WINDOWS
}
bool
CopyFile(std::filesystem::path FromPath, std::filesystem::path ToPath, const CopyFileOptions& Options)
{
+#if ZEN_PLATFORM_WINDOWS
bool Success = false;
if (Options.EnableClone)
@@ -426,6 +436,10 @@ CopyFile(std::filesystem::path FromPath, std::filesystem::path ToPath, const Cop
}
return Success;
+#else
+ ZEN_ERROR("CopyFile() is not implemented on this platform");
+ return false;
+#endif // ZEN_PLATFORM_WINDOWS
}
void
@@ -507,6 +521,7 @@ ReadFile(std::filesystem::path Path)
bool
ScanFile(std::filesystem::path Path, const uint64_t ChunkSize, std::function<void(const void* Data, size_t Size)>&& ProcessFunc)
{
+#if ZEN_PLATFORM_WINDOWS
ATL::CHandle FromFile(CreateFileW(Path.c_str(), GENERIC_READ, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr));
if (FromFile == INVALID_HANDLE_VALUE)
{
@@ -533,6 +548,10 @@ ScanFile(std::filesystem::path Path, const uint64_t ChunkSize, std::function<voi
}
return true;
+#else
+ ZEN_ERROR("ScanFile() is not implemented on this platform");
+ return false;
+#endif // ZEN_PLATFORM_WINDOWS
}
std::string