Có điều gì đó giống như trợ giúp này?
public static Dictionary<String, T> LoadContent<T>(this ContentManager contentManager, string contentFolder)
{
//Load directory info, abort if none
DirectoryInfo dir = new DirectoryInfo(contentManager.RootDirectory + "\\" + contentFolder);
if (!dir.Exists)
throw new DirectoryNotFoundException();
//Init the resulting list
Dictionary<String, T> result = new Dictionary<String, T>();
//Load all files that matches the file filter
FileInfo[] files = dir.GetFiles("*.*");
foreach (FileInfo file in files)
{
string key = Path.GetFileNameWithoutExtension(file.Name);
result[key] = contentManager.Load<T>(contentManager.RootDirectory + "/" + contentFolder + "/" + key);
}
//Return the result
return result;
}
Nguồn
2010-10-29 14:14:50
Tại sao tôi không nghĩ đến việc chỉ quét thư mục nội dung:/ –
Công cụ tuyệt vời! Đối với bất cứ ai đấu tranh để sử dụng điều này tôi thấy rằng đối với dự án của tôi, tôi cần phải loại bỏ "contentManager.RootDirectory +" khỏi cuộc gọi tải vì tôi đã thiết lập Content.RootDirectory = Nội dung rồi. Ngoài ra phương pháp này cũng cần phải được sử dụng trong một lớp tĩnh. – Mafro34
Lưu ý rằng điều này dường như tải tất cả nội dung (do đó tên của phương thức). Nếu bạn chỉ muốn liệt kê các mục nhưng * không tải * chúng, điều này có thể hơi nặng. Ngoài ra, tôi không nghĩ rằng có bất kỳ cách nào để liệt kê nội dung của một loại nhất định mà không tải nội dung. Meh. Tôi cho rằng một bước ngoại tuyến sẽ hoạt động tốt trong trường hợp này. –
cod3monk3y