GetFiles 文件名中有空格

GetFiles with spaces in filename

我使用以下代码从目录中获取所有文件并搜索特定文件:

string [] fileEntries = Directory.GetFiles("C:\uploads");
foreach(string fileName in fileEntries)
    if (fileName.Contains(name))
        PicturePath = fileName;

其中 "name" 是我从数据库中获取的字符串。

它似乎可以扩展,但如果我的文件在 fileName 中包含 space,它只会从 fileName 中获取第一个字符串,这是白色 space 之前的第一个字符串,忽略其余部分.我如何获取完整的文件名(以及相应文件的路径)。

例如:我在上传中有一个名为 "ALEXANDRU ALINA.jpg" 的文件,名称中有字符串 "ALEXANDRU ALINA"。当我 运行 该代码(编写 PicturePath)时,它只显示 "ALEXANDRU"。

这可能是您要找的:

string[] fileEntries = Directory.GetFiles("C:\uploads");

foreach (string fileName in fileEntries)
{
    FileInfo fi = new FileInfo(fileName);
    if (fi.Name.Equals(name, StringComparison.CurrentCultureIgnoreCase)) PicturePath = fileName;
}

您试图做的是在整个路径中找到目标文件名,但是您使用的方法可能会产生错误(如果 name 包含在文件夹路径的一部分中怎么办?)。通过使用 System.FileInfo class 及其 Name 属性,这只是 文件名 (不是包含的完整文件路径包含的文件夹路径),您将不会不必要地搜索文件夹路径的任何部分。