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
属性,这只是 文件名 (不是包含的完整文件路径包含的文件夹路径),您将不会不必要地搜索文件夹路径的任何部分。
我使用以下代码从目录中获取所有文件并搜索特定文件:
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
属性,这只是 文件名 (不是包含的完整文件路径包含的文件夹路径),您将不会不必要地搜索文件夹路径的任何部分。