mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/PCK-Studio.git
synced 2026-07-15 21:48:09 +00:00
Core(PckFileExtensions) - Add 'HasDirectory' & 'GetDirectoryContent' extension methods
This commit is contained in:
@@ -91,5 +91,23 @@ namespace PckStudio.Core.Extensions
|
||||
return asset;
|
||||
}
|
||||
|
||||
public static bool HasDirectory(this PckFile pck, string directoryPath)
|
||||
{
|
||||
string sanitisedDirectoryPath = directoryPath.Replace('\\', '/');
|
||||
return pck.GetAssets().Any(asset => asset.Filename.StartsWith(sanitisedDirectoryPath));
|
||||
}
|
||||
|
||||
public static IEnumerable<PckAsset> GetDirectoryContent(this PckFile pck, string directoryPath, PckAssetType assetType, bool includeSubDirectories = false)
|
||||
=> GetDirectoryContent(pck, directoryPath, includeSubDirectories).Where(asset => asset.Type == assetType);
|
||||
public static IEnumerable<PckAsset> GetDirectoryContent(this PckFile pck, string directoryPath, bool includeSubDirectories = false)
|
||||
{
|
||||
string sanitisedDirectoryPath = directoryPath.Replace('\\', '/');
|
||||
if (!sanitisedDirectoryPath.EndsWith("/"))
|
||||
sanitisedDirectoryPath += "/";
|
||||
return pck.GetAssets()
|
||||
.Where(asset => asset.Filename.StartsWith(sanitisedDirectoryPath))
|
||||
.Where(asset => includeSubDirectories || !asset.Filename.Substring(sanitisedDirectoryPath.Length).Contains('/'));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user