2016-07-27 53 views
1

在C#中使用此asp网页上传文件,我需要检查重复文件。在c#上检查重复上传文件

我接受服务器上传的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; 
     } 
    }       
} 
+0

你可以发布整个功能吗?就像那样,我看到很多毫无意义的东西。 – peterboccia

回答

1

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

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

现在警报在循环中多执行一次。

+0

谢谢你的回复。现在在重复的文件中,我有多个打开的警报弹出窗口,但文件的名称是相同的... –

+0

@AntonioMailtraq也许你想打印而不是'upload.FileName'这个:'file.Name'在alert中。 –

+0

非常感谢你的帮助! –

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); 
    } 
}