所以,我试图上传某些名称为'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) { }
}
答案 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
}
它应该可以正常工作