是否可以foreach或检查它是否包含HttpFileCollection.FileName中的某个文本? - ASP.Net

时间:2018-04-10 10:02:21

标签: c# asp.net

所以,我试图上传某些名称为'2018-2-10 10-23-34'// 2018年2月10日10:23:34的文件,这不是一个文件,我有喜欢这些名字的多个文件。这就是我使用HttpFileCollection的原因。

现在,例如,我选择了具有这些文件名的文件,我想检查它是否具有正确的文件名,否则它只会保存为原样。

正如你在下面看到的,我添加了一个假代码,因为它不起作用或它的语法错误。

我看到了这样的代码,但我不知道如何在HttpFileCollection的当前代码上应用它,请帮忙。

bool contains  = Directory.EnumerateFiles(path).Any(f => f.Contains("three"));

我的代码

 protected void UploadButton_Click(object sender, EventArgs e)
        {
            if (FileUpload1.HasFile)
            {
                try
                {
                    string date = DateTime.Now.ToString("yyyy-M-d");
                     DateTime DateValue;
                     DateValue = DateTime.Parse(date, CultureInfo.InvariantCulture);
                     string dayoftheweek = "(" + DateValue.ToString("dddd") + ")";
                     Response.Write(dayoftheweek);
                    string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                    HttpFileCollection hfc = Request.Files;
                    for (int i = 0; i < hfc.Count; i++)
                    {
                        foreach (hfc[i].FileName.Contains(date))// What I am trying to do, but wrong syntax or wrong code
                        {
                                hfc[i].SaveAs(@path+"\\" + hfc[i].FileName + dayoftheweek);
                        }// What I am trying to do, but wrong syntax or wrong code
                        Response.Write(hfc[i].FileName);

                        hfc[i].SaveAs(@path+"\\" + hfc[i].FileName);

                    }


                }
                catch (Exception) { }
            }

2 个答案:

答案 0 :(得分:1)

你提到的foreach循环错误。

//This will make you iterate trough the file collection
for (int i = 0; i < hfc.Count; i++)
{
     if(hfc[i].FileName.Contains(date))
     {
        hfc[i].SaveAs(@path+"\\" + hfc[i].FileName + dayoftheweek);
     }      
}

不再需要foreach循环,因此您可以删除

foreach (hfc[i].FileName.Contains(date))
{
}

答案 1 :(得分:0)

问题是你的每个循环都没有声明

foreach(var variable in Enumerable){
 //other code 
}

所以在你的情况下它将是

foreach( var file in hfc)
{
 //other code
}

它应该可以正常工作