我有以下代码:
private string[] FindExistingDocuments()
{
string supportedImageFormats = "jpg,pdf,doc,docx,xlsx";
DirectoryInfo documentPath = new DirectoryInfo("...");
string supportedFileTypes = String.Join(",*.", supportedImageFormats.Split(','));
string[] files = Directory.GetFiles(documentPath.FullName, supportedFileTypes, SearchOption.AllDirectories);
return files;
}
这是一种搜索特定文件类型列表的方法,但当前代码的问题是String.Join
没有将分隔符放在第一项(这是有意义的)。
所以我的supportedFileTypes
原来是:
jpg,*.pdf,*.doc,*.docx,*.xlsx
但我希望它是:
*.jpg,*.pdf,*.doc,*.docx,*.xlsx
我可以以一种非常干净的方式做到这一点吗?
注意:我无法更改supportedImageFormats
答案 0 :(得分:6)
string newStr = string.Join(",", supportedImageFormats.Split(',')
.Select(r => "*." + r));
输出:Console.WriteLine(newStr);
*.jpg,*.pdf,*.doc,*.docx,*.xlsx
答案 1 :(得分:1)
我认识到来自@Habib的答案的优雅,但也有一个非LINQ答案
string newStr = "*." + string.Join(",*.", supportedImageFormats.Split(','));
顺便说一下,所有这一切都毫无意义,因为你无法将这种模式传递给Directory.GetFiles