获取*仅*没有扩展名的文件的文件路径[vb.net]

时间:2017-03-14 16:29:28

标签: vb.net linq filepath

我正在使用函数获取扩展名为txt的可执行文件路径中的文件路径。

Dim FileEntries as string() = _
Directory.GetFiles(Path.GetDirectoryName(Application.ExecutablePath), "*txt"

但是现在我发现使用没有txt扩展名的文件会更好,尽管事实上我可以使用记事本来改变行。

如何使用此功能获取没有扩展名的文件? 如果我只使用"*",它会获得除扩展名之外的所有文件。谢谢!

- 编辑 -

我想避免任何它不应该在路径中的文件。我只想收集没有扩展名的文件,因此避免使用任何其他文件。如果以某种方式创建了一个文件,任何扩展名,我想避免它。

2 个答案:

答案 0 :(得分:4)

您可以使用LINQ:

Dim nonTxtFiles = 
    From fn In Directory.EnumerateFiles(Path.GetDirectoryName(Application.ExecutablePath))
    Where Not String.Equals(Path.GetExtension(fn), ".txt", Stringcomparison.InvariantCultureIgnoreCase)
Dim FileEntries as string() = nonTxtFiles.ToArray()

如果您只想要没有扩展名的文件(您已编辑过您的问题),那就很简单了:

Dim noExtFiles = From fn In Directory.EnumerateFiles(path)
                 Where String.IsNullOrEmpty(IO.Path.GetExtension(fn))

答案 1 :(得分:2)

Linq的另一个解决方案是使用Path.GetExtension()方法查看文件是否有扩展名:

Sub Main
    Dim files = getFilenamesWithNoExtension("C:\SomeFolder")
End Sub

Private Function getFilenamesWithNoExtension(foldertosearch As String) As String()
    Dim result As String()

    result = Directory.EnumerateFiles(foldertosearch).Where(Function(f) String.IsNullOrEmpty(Path.GetExtension(f))).ToArray()

    Return result
End Function