我正在尝试在 XNA 中编写一个漂亮的内容加载器,以避免必须单独加载每个资产。但是,我无法描述目录位置,因为 File 操作的默认目录是 exe 的位置,但 XNA 的 Content.Load 使用 Content 文件夹的默认目录。
foreach (string subD in Directory.GetDirectories("..\\..\\..\\..\\Happy WorkerContent\\gfx\\", "*.*", SearchOption.AllDirectories))
{
foreach (string s in Directory.GetFiles(subD))
{
string file = Path.GetFileNameWithoutExtension(s);
if (Enum.IsDefined(typeof(Tex), file))
{
Console.WriteLine(subD);
Console.WriteLine(file);
GXDict.Add(Path.GetFileNameWithoutExtension(s), GV.C_Game1.Content.Load<Texture2D>(subD + "\\" + file));
}
}
}
我的错误是因为 subD 是,例如,“........\Happy WorkerContent\gfx\level entity\terrains”,但 Content.Load 需要“gfx\level entity\terrains”。
我可以做一些类似 subD.Substring(32) 的事情,但这看起来很混乱,特别是如果我稍后重命名任何文件夹或任何东西(并且可能在已发布的版本中不起作用?)。有没有一种好方法可以说“我只想要“Happy WorkerContent”目录之后的文件部分?