File.Exists(file)为false但文件存在

use*_*034 3 c# file asp.net-mvc-4

我在一个控制器和另一个控制器中添加一个文件,我想检查文件是否存在.我正在使用File.Exist(file),但即使文件存在,它总是错误的...

我添加文件,图像添加成功.

if ((image!= null & image.ContentLength > 0))
                    {
                        string name = event.EventId.ToString() + ".jpg";

                        var fileName = name;
                        var path = Path.Combine(Server.MapPath("~/App_Data/Plakaty"), fileName);
                        plakat.SaveAs(path);
                    }
Run Code Online (Sandbox Code Playgroud)

如果此文件存在,我正在检入另一个控制器:

string file = "~/App_Data/Plakaty/" + wyd.EventId.ToString() + ".jpg";

            ViewBag.file_exist = System.IO.File.Exists(file); //always is false
Run Code Online (Sandbox Code Playgroud)

而我的观点:(它只返回"没有文件")

 @if (ViewBag.file_exist == true)
        {
            <p>File exist</p>
        }
        else
        {
            <p>No file</p>
        }
Run Code Online (Sandbox Code Playgroud)

von*_* v. 7

Server.MapPath检查文件时需要再次执行此操作并执行正斜杠.

string file = Server.MapPath("~") + @"\App_Data\Plakaty\" 
    + wyd.EventId.ToString() + ".jpg";

ViewBag.file_exist = System.IO.File.Exists(file ); //always is false
Run Code Online (Sandbox Code Playgroud)