如何从给定的文件名字符串路径获取所有文件?

时间:2016-02-06 23:09:15

标签: c# .net winforms

string fileName = args[1];

现在例如我在fileName e:\ test1 \ myimage.bmp

现在我想获取test1中的所有文件。 我想从fileName中提取目录test1,然后从test1获取所有文件名。

get文件应该只获取特定文件类型的图像类型,例如* .bmp或* .jpeg或* .tiff,而不是获取目录中的所有文件类型。

3 个答案:

答案 0 :(得分:3)

要获取特定文件的父文件夹,只需使用此行Path.GetDirectoryName(fileName);

您可以使用以下代码Directory.EnumerateFiles获取与bmp,jpeg或tiff扩展名匹配的所有文件。最后你必须有类似这样的代码;

var directory = System.IO.Path.GetDirectoryName(fileName);
var files = System.IO.Directory.EnumerateFiles(directory, "*.*")
    .Where(s => s.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase)
            || s.EndsWith(".jpeg", StringComparison.OrdinalIgnoreCase)
            || s.EndsWith(".tiff ", StringComparison.OrdinalIgnoreCase));

答案 1 :(得分:1)

首先,您需要父目录,以便使用System.IO.Directory.GetParent()。获得父目录后,使用Directory.GetFiles(path, extension)获取具有该扩展名的所有文件。

答案 2 :(得分:1)

为此,您需要使用System.IO命名空间。

void test()
{
    var fileName = @"c:\a\a.php";
    var dir = Directory.GetParent(fileName);
    string[] files = Directory.GetFiles(dir);
}

使用Directory类,您可以将文件列表作为字符串数组。

然而,这不会将文件限制为仅限图像,但您可以使用简单的LINQ来修复它:

void test()
{
    var fileName = @"c:\a\a.php";
    var dir = Directory.GetParent(fileName);
    string[] files = Directory.GetFiles(dir).Where(o => o.EndsWith(".bmp") | o.EndsWith(".jpg") | o.EndsWith(".png")).ToArray();
}

这需要System.Linq命名空间。