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

时间:2016-05-26 10:17:13

标签: c# file-exists

问题

我有一个让用户在执行此操作时编辑图像的功能我将这个新图像保存到我保存到数据库等的文件中......

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

代码

这里我将新文件保存到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)))
{

}

当我可以亲眼看到文件时,这会返回false( Not exists )!

有人有同样的问题吗?

EDIT1:

newFullFileName已包含.png:

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

2 个答案:

答案 0 :(得分:7)

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

因此,ti将成为FILENAME.png.png,它将返回错误。

从newfullFilename和

中删除.png

尝试以下

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

 }

答案 1 :(得分:5)

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

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