Fix cache directory selection
This commit is contained in:
@@ -511,8 +511,22 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase
|
|||||||
_isOneDrive = path.Contains("onedrive", StringComparison.OrdinalIgnoreCase);
|
_isOneDrive = path.Contains("onedrive", StringComparison.OrdinalIgnoreCase);
|
||||||
_isPenumbraDirectory = string.Equals(path.ToLowerInvariant(), _ipcManager.Penumbra.ModDirectory?.ToLowerInvariant(), StringComparison.Ordinal);
|
_isPenumbraDirectory = string.Equals(path.ToLowerInvariant(), _ipcManager.Penumbra.ModDirectory?.ToLowerInvariant(), StringComparison.Ordinal);
|
||||||
_isDirectoryWritable = IsDirectoryWritable(path);
|
_isDirectoryWritable = IsDirectoryWritable(path);
|
||||||
_cacheDirectoryHasOtherFilesThanCache = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Any(f => Path.GetFileNameWithoutExtension(f).Length != 40)
|
_cacheDirectoryHasOtherFilesThanCache = false;
|
||||||
|| Directory.GetDirectories(path).Any();
|
var cacheDirFiles = Directory.GetFiles(path, "*", SearchOption.AllDirectories);
|
||||||
|
var cacheSubDirs = Directory.GetDirectories(path);
|
||||||
|
|
||||||
|
_cacheDirectoryHasOtherFilesThanCache = cacheDirFiles.Any(f =>
|
||||||
|
Path.GetFileNameWithoutExtension(f).Length != 40
|
||||||
|
&& !Path.GetExtension(f).Equals("tmp", StringComparison.OrdinalIgnoreCase)
|
||||||
|
&& !Path.GetExtension(f).Equals("blk", StringComparison.OrdinalIgnoreCase)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!_cacheDirectoryHasOtherFilesThanCache
|
||||||
|
&& cacheSubDirs.Select(f => Path.GetFileName(Path.TrimEndingDirectorySeparator(f))).Any(f =>
|
||||||
|
!f.Equals("subst", StringComparison.OrdinalIgnoreCase)
|
||||||
|
))
|
||||||
|
_cacheDirectoryHasOtherFilesThanCache = true;
|
||||||
|
|
||||||
_cacheDirectoryIsValidPath = PathRegex().IsMatch(path);
|
_cacheDirectoryIsValidPath = PathRegex().IsMatch(path);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(path)
|
if (!string.IsNullOrEmpty(path)
|
||||||
|
|||||||
Reference in New Issue
Block a user