gpt4 book ai didi

c# - 获取不带扩展名的文件名,重复项除外

转载 作者:行者123 更新时间:2023-11-30 22:17:16 27 4
gpt4 key购买 nike

我正在用文件夹中的所有文件名填充一个列表(减去扩展名为 .blah 的文件名)。我想要没有扩展名的文件名,除非目录包含两个相同的文件名(但扩展名明显不同)。

这是一个例子...

从文件夹中取出以下文件:

blah.txt
blah.doc
test.txt
ex.dox

我希望列表中发生的事情:

blah.txt
blah.doc
test
ex

这是我到目前为止所拥有的,但这显然只是添加所有没有扩展名的文件,并且没有考虑具有相同名称的文件:

foreach (string file in Directory.GetFiles(folderName).Where(name => !name.EndsWith(".blah")))
{
list.Add(Path.GetFileNameWithoutExtension(file));
}

我想知道是否有一种很酷、干净的方法来做到这一点。

最佳答案

这看起来很干净:

Directory.GetFiles(folderName)
.Where(f => !f.EndsWith(".blah"))
.Select (f => new FileInfo(f))
.Select(f => new { NoExt = Path.GetFileNameWithoutExtension(f.Name), f.Name})
.GroupBy (f => f.NoExt)
.SelectMany(g => g.Count() > 1 ? g.Select(f => f.Name)
: g.Select (f => f.NoExt))

关于c# - 获取不带扩展名的文件名,重复项除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846523/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com