好的,我想做的是循环遍历一个有多个文件名的文件夹,我想搜索多个字符串,如果找到了,就添加一个键和值到字典中,因为我需要文件夹中的所有文件都像这样存储
ads_fire在文件名中查找文件名中包含ads_fire的文本,一旦找到就会存储该文件名
因此,一旦找到,就想被添加到像animnames.add(ads_fire,adsfire)这样的字典中
下面的代码可以工作,但只能在一个文件名上工作,我有大约20个这样的文件名,我必须这样做,并需要使键匹配的值
string partialName = "ads_fire";
DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(testdir);
FileInfo[] filesInDir = hdDirectoryInWhichToSearch.GetFiles("*" + partialName + "*.*");
foreach (FileInfo foundFile in filesInDir)
{
string fullName = foundFile.Name;
animnames.Add("ads_fire", fullName);
richTextBox1.Text = animnames["ads_fire"];
}这是我想要的结果,但我希望它适用于所有的动物,而不仅仅是ads_fire one result of code sniplet
发布于 2019-04-06 08:49:09
如果我没记错的话,您在testdir文件夹中有一系列"*.xanim_bin"格式的文件,并且只要文件名包含一系列预定义的键中的一个,您就想为所有这些文件创建一个字典。
首先,您必须定义所需的keys。
string[] keys = new[]
{
"ads_down",
"ads_fire",
"ads_up",
"crawl_forward",
// etc, you must enter these
};然后你可以像这样制作你的字典:
Dictionary<string, string> animnames =
Directory
.EnumerateFiles(testdir, "*.xanim_bin")
.Select(fullname => new System.IO.FileInfo(fullname))
.Select(fileinfo => new
{
fileinfo,
key = keys.FirstOrDefault(k => fileinfo.Name.Contains(k))
})
.Where(x => x.key != null)
.ToDictionary(x => x.key, x => x.fileinfo.Name);然后你可以像这样填充你的RichTextBox:
richTextBox1.Text =
String.Join(
Environment.NewLine,
animnames.Select(x => x.Value).OrderBy(x => x));https://stackoverflow.com/questions/55544498
复制相似问题