在我的项目中,我有 525 Wave 文件作为资源。
我想将所有这些Wave文件加载到流数组中并存储它们供以后使用。
问题是我无法索引资源来获取这些文件。
资源按名称排序,我想用此订单填充我的数组。
资源中没有文件夹。只是Wave文件。此外,它没有额外的文件。正好有525个波形文件。
我希望我能做到这样的事情。
Stream[] waves = new Stream[525];
for (int i = 0; i < waves.Length; i++)
{
waves[i] = Resources[i];
}
示例文件名的名称。
A00,A01,A02,A03,... B01,B02,B03,... C01 ....
我也试过this。但是文件名不容易被索引。
此外,如果有任何方法将资源放入字典中,它将变得更加容易。
Stream[] waves = new Stream[525];
Dictionary<int, Stream> Res = new Dictionary<int, Stream>();
for (int i = 0; i < waves.Length; i++)
{
waves[i] = Res[i];
}
答案 0 :(得分:1)
如果您有权访问资源文件夹,请尝试以下代码:
string[] files = Directory.GetFiles(@"resources", "*.wav");
Dictionary<string, Stream> dic = new Dictionary<string, Stream>();
foreach (var file in files)
{
byte[] data = File.ReadAllBytes(file);
MemoryStream stream = new MemoryStream(data);
dic.Add(Path.GetFileNameWithoutExtension(file), stream);
}
foreach (var item in dic.OrderBy(d=>d.Key))
{
// here store item which has been ordered by name!
}