2.0.0 #92

Merged
defnotken merged 171 commits from 2.0.0 into master 2025-12-21 17:19:36 +00:00
Showing only changes of commit bf139c128b - Show all commits

View File

@@ -138,7 +138,7 @@ public sealed class FileCompactor : IDisposable
_compactionCts.Cancel();
try
{
if (!_compactionWorker.Wait(TimeSpan.FromSeconds(5)))
if (!_compactionWorker.Wait(TimeSpan.FromSeconds(5), _compactionCts.Token))
{
_logger.LogDebug("Compaction worker did not shut down within timeout");
}
@@ -463,10 +463,32 @@ public sealed class FileCompactor : IDisposable
private static bool IsWOFCompactedFile(string filePath)
{
uint buf = 8;
_ = WofIsExternalFile(filePath, out int isExtFile, out uint _, out var info, ref buf);
if (isExtFile == 0) return false;
return info.Algorithm == CompressionAlgorithm.XPRESS8K;
try
{
uint buf = (uint)Marshal.SizeOf<WOF_FILE_COMPRESSION_INFO_V1>();
int result = WofIsExternalFile(filePath, out int isExternal, out uint _, out var info, ref buf);
if (result != 0 || isExternal == 0)
return false;
return info.Algorithm == CompressionAlgorithm.XPRESS8K || info.Algorithm == CompressionAlgorithm.XPRESS4K
|| info.Algorithm == CompressionAlgorithm.XPRESS16K || info.Algorithm == CompressionAlgorithm.LZX;
}
catch (DllNotFoundException)
{
// WofUtil.dll not available
return false;
}
catch (EntryPointNotFoundException)
{
// Running under Wine or non-NTFS systems
return false;
}
catch (Exception)
{
// Exception happened
return false;
}
}
private bool IsBtrfsCompressedFile(string path)