在c#中检查上传的重复文件

时间:2016-07-27 11:06:29

标签: c# asp.net file-upload

使用C#中的这个asp网页上传文件,我需要检查重复文件。

我接受服务器上传的3个文件。

此代码有效且重复文件未上传,但警报弹出窗口仅对第一个重复文件发送上传时打开,即使重复项更多也是如此。

问题是什么?

我的代码如下,请提前感谢。

if (File.Exists(upload.FileName))
{
    DirectoryInfo objDir = new DirectoryInfo(Server.MapPath("\\images\\"));

    FileInfo[] objFI = objDir.GetFiles("*.*");

    int iFileCnt = 0;

    if (objFI.Length > 0)
    {
        foreach (FileInfo file in objFI)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg", "alert('This file exists " + upload.FileName + "');", true);
            iFileCnt += 1;
        }
    }                        
}

2 个答案:

答案 0 :(得分:1)

"Msg"更改为"Msg" + iFileCnt。这会改变每次迭代的关键。

Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg" + iFileCnt, "alert('This file exists " + file.Name + "');", true);

现在警告执行多次循环。

答案 1 :(得分:1)

这样的事情怎么样?

List<string> Filenames = new List<string>()
{
    "File1.jpg",
    "File2.jpg"
    //etc.
};

foreach(string s in Filenames)
{
    Upload(s);
}

private void Upload(string filename)
{
    string directory = @"\\path\\to\\directory";
    string fullpath = string.Format(@"{0}\{1}", directory, filename);

    if(File.Exists(fullpath))
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "Msg",     "alert('This file exists " + filename + "');", true);
    }
}