File.Exists 返回 false,即使我可以看到文件 C#

File.Exists is returning false even though I can see the file C#

问题


我有一个功能可以让用户在执行此操作时编辑图像我将这个新图像保存到一个文件中,然后他们将其保存到数据库中等等...

当我尝试查找我刚刚保存的文件时出现问题,它说它不存在但确实存在?

代码


这里我将新文件保存到TEMP文件夹中:

string newFullTempFolderURL = Path.Combine(Global.TempFolder, newFullFileName + ".png");

_image.Save(newFullTempFolderURL, System.Drawing.Imaging.ImageFormat.Png);

此时,当我检查文件夹时,文件位于包含新图像的文件夹中。

然后当我继续将文件上传到服务器(使用 BITS)时,我会检查以确保文件存在:

if (File.Exists(Path.Combine(Global.TempFolder + "\" + newFullFileName)))
{

}

然后 returns false(不存在)当我能亲眼看到文件时!

有人遇到过同样的问题吗?

编辑 1:

newFullFileName 已包含 .png:

string newFullFileName = string.Format(oldFileName.Substring(0, oldFileName.IndexOf("_") + 1) + DateTime.Now.ToString(), "yyyyMMddhhmmss").Replace(@"/", "").Replace(" ", "").Replace(":", "") + ".png";

根据您的编辑,您已将 .png 添加到 newFullFileName.. 然后 newFullTempFolderURL 将向您的文件名添加另一个 .png。

所以 ti 会变成 FILENAME.png.png 它会 return 错误。

从 newfullFilename 和

中删除 .png

试试下面

   if (File.Exists( Path.Combine(Global.TempFolder, newFullFileName))
 {

 }

您的 File.Exists 不包含您在创建 "newFullTempFolderURL" 时手动添加的文件扩展名。您需要将“.png”附加到 File.Exists 检查或更好地使用 File.Exists(newFullTempFolderURL);因为它已经预制了。

编辑1: 您正在第二次添加“.png”。这是错误的,因为创建的文件是“.png.png”,然后您正在检查“.png”是否存在。