C# 检查文件是否存在,如果不存在,则在屏幕上显示消息,直到它确实存在

C# 检查文件是否存在,如果不存在,则在屏幕上显示消息,直到它确实存在,c#,asp.net,C#,Asp.net,我有一个网站,用户可以按下按钮,创建一个动态报告。报告正在成功创建,但可能需要一些时间(用ASP.NET编写)。(旁注:报告是由外部VB程序创建的-一切正常!!) 如果文件还不存在,我想在屏幕上显示一条消息“请稍候,您的文件正在创建”,但目前没有消息出现,但一旦文件存在于文件夹中,它就会按预期下载 在生成报告时,如何获取要显示的消息 我的代码如下: while (true) try { string exportDateFileName = exportReque

我有一个网站,用户可以按下按钮,创建一个动态报告。报告正在成功创建,但可能需要一些时间(用ASP.NET编写)。(旁注:报告是由外部VB程序创建的-一切正常!!)

如果文件还不存在,我想在屏幕上显示一条消息“请稍候,您的文件正在创建”,但目前没有消息出现,但一旦文件存在于文件夹中,它就会按预期下载

在生成报告时,如何获取要显示的消息

我的代码如下:

while (true)
    try
    {
        string exportDateFileName = exportRequest.ToString("yyyyMMdd_hhmmss");
        Response.ContentType = "APPLICATION/OCTET-STREAM";
        String Header = "Attachment; Filename=PartPrediction" + ddl_country.SelectedItem.Text + ".xlsx";
        Response.AppendHeader("Content-Disposition", Header);
        // System.IO.FileInfo Dfile = new System.IO.FileInfo("~/Transfer/Exports/"+ exportDateFileName+".xlsx");
        System.IO.FileInfo Dfile = new System.IO.FileInfo("~/Transfer/Exports/Book1.xlsx");

        Response.WriteFile(Dfile.FullName);
        Response.End();
    }
    //wait for the file to be created 
    catch (Exception ex)
    {

        if(!File.Exists("~/Transfer/_Exports/Book1.xlsx"))
        {

        System.Threading.Thread.Sleep(2000);
       downloadingMessage.Visible=true;
    }

任何建议都将不胜感激

实现推送机制并检查文件是否存在

if(!File.Exists("~/Transfer/_Exports/Book1.xlsx"))
{
  PushSomeMessage("file is not ready yet, please wait");
}

使用while(!File.Exists(“~/Transfer/_Exports/Book1.xlsx”){//Do Nothing}来等待文件的创建。@MuhammadRamzan谢谢,但我希望屏幕上出现一条消息,告诉您在创建文件时等待。注意:文件存在并不意味着它已经完成了对磁盘的写入。文件开始存在的时间与(其他应用程序)完成写入文件的时间之间存在差异。在等待while循环之前显示非阻塞UI,在while循环之后隐藏该UI。@akb29:除非写入文件的程序故意使其明显可见,否则不显示。例如,在写入时,它将数据写入
myfile.temp.txt
,完成后,它将文件重命名为
myfile.txt
。只是一个随机的例子。但是,除非以前的应用程序(以任何方式)让您知道工作已经完成,否则您无法知道以前的应用程序已经完成了它的工作。谢谢,但是我得到了错误“当前上下文中不存在名称“PushSomeMessage”。我是否缺少一个程序集引用?正如我之前所说的,您应该添加pushLibrary,例如SignalR,以便在代码中实现PushSomeMessage