check if directory has subdirectories when setting storage location

This commit is contained in:
rootdarkarchon
2024-02-28 02:13:08 +01:00
parent 47a876e70d
commit cfb8cdaa79

View File

@@ -571,7 +571,8 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase
_isOneDrive = path.Contains("onedrive", StringComparison.OrdinalIgnoreCase); _isOneDrive = path.Contains("onedrive", StringComparison.OrdinalIgnoreCase);
_isPenumbraDirectory = string.Equals(path.ToLowerInvariant(), _ipcManager.PenumbraModDirectory?.ToLowerInvariant(), StringComparison.Ordinal); _isPenumbraDirectory = string.Equals(path.ToLowerInvariant(), _ipcManager.PenumbraModDirectory?.ToLowerInvariant(), StringComparison.Ordinal);
_isDirectoryWritable = IsDirectoryWritable(path); _isDirectoryWritable = IsDirectoryWritable(path);
_cacheDirectoryHasOtherFilesThanCache = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Any(f => Path.GetFileNameWithoutExtension(f).Length != 40); _cacheDirectoryHasOtherFilesThanCache = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Any(f => Path.GetFileNameWithoutExtension(f).Length != 40)
|| Directory.GetDirectories(path).Any();
_cacheDirectoryIsValidPath = PathRegex().IsMatch(path); _cacheDirectoryIsValidPath = PathRegex().IsMatch(path);
if (!string.IsNullOrEmpty(path) if (!string.IsNullOrEmpty(path)
@@ -609,7 +610,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase
} }
else if (_cacheDirectoryHasOtherFilesThanCache) else if (_cacheDirectoryHasOtherFilesThanCache)
{ {
ColorTextWrapped("Your selected directory has files inside that are not Mare related. Use an empty directory or a previous Mare storage directory only.", ImGuiColors.DalamudRed); ColorTextWrapped("Your selected directory has files or directories inside that are not Mare related. Use an empty directory or a previous Mare storage directory only.", ImGuiColors.DalamudRed);
} }
else if (!_cacheDirectoryIsValidPath) else if (!_cacheDirectoryIsValidPath)
{ {