Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何删除"/应用程序“数据/上传”;文件夹ASP.NET MVC_C#_Asp.net Mvc_Asp.net Mvc 5_Delete File - Fatal编程技术网

C# 如何删除"/应用程序“数据/上传”;文件夹ASP.NET MVC

C# 如何删除"/应用程序“数据/上传”;文件夹ASP.NET MVC,c#,asp.net-mvc,asp.net-mvc-5,delete-file,C#,Asp.net Mvc,Asp.net Mvc 5,Delete File,我可以在发送电子邮件时上载/附加文件。这些文件存储在App_Data/uploads文件夹中,因此当我尝试发送多个文件时,需要很长时间才能发送。我想这是因为文件夹已经有很多文件了,所以我想在它已经通过电子邮件发送时删除文件夹中的文件。请帮帮我。我刚接触过这种东西。非常感谢。这是控制器: [HttpPost] [ValidateAntiForgeryToken] public async Task<ActionResult> Index(EmailFormModel model, IE

我可以在发送电子邮件时上载/附加文件。这些文件存储在App_Data/uploads文件夹中,因此当我尝试发送多个文件时,需要很长时间才能发送。我想这是因为文件夹已经有很多文件了,所以我想在它已经通过电子邮件发送时删除文件夹中的文件。请帮帮我。我刚接触过这种东西。非常感谢。这是控制器:

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Index(EmailFormModel model, IEnumerable<HttpPostedFileBase> files)
{
    if (ModelState.IsValid)
    {

        List<string> paths = new List<string>();

        foreach (var file in files)
        {
            if (file.ContentLength > 0)
            {
                var fileName = Path.GetFileName(file.FileName);
                var path = Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
                file.SaveAs(path);

                paths.Add(path);
            }

        }

            var message = new MailMessage();
            foreach (var path in paths)
            {
                var fileInfo = new FileInfo(path);
                var memoryStream = new MemoryStream();
                using (var stream = fileInfo.OpenRead())
                {
                    stream.CopyTo(memoryStream);
                }
                memoryStream.Position = 0;
                string fileName = fileInfo.Name;
                message.Attachments.Add(new Attachment(memoryStream, fileName));
            }

            //Rest of business logic here
            string EncodedResponse = Request.Form["g-Recaptcha-Response"];
            bool IsCaptchaValid = (ReCaptcha.Validate(EncodedResponse) == "True" ? true : false);
            if (IsCaptchaValid)
            {

                var body = "<p>Email From: {0} ({1})</p><p>Subject: {2} </p><p>Message:</p><p>{3}</p>";
                message.To.Add(new MailAddress("***@gmail.com"));  // replace with valid value 
                message.From = new MailAddress("***@ymailcom");  // replace with valid value
                message.Subject = "Your email subject";
                message.Body = string.Format(body, model.FromName, model.FromEmail, model.FromSubject, model.Message);
                message.IsBodyHtml = true;
                using (var smtp = new SmtpClient())
                {
                    var credential = new NetworkCredential
                    {
                        UserName = "***@gmail.com",  // replace with valid value
                        Password = "***"  // replace with valid value
                    };
                    smtp.Credentials = credential;
                    smtp.Host = "smtp.gmail.com";
                    smtp.Port = 587;
                    smtp.EnableSsl = true;
                    await smtp.SendMailAsync(message);
                    //return RedirectToAction("Sent");
                    ViewBag.Message = "Your message has been sent!";

                    //TempData["message"] = "Message sent";
                    ModelState.Clear();
                    return View("Index");
                }

            }
            else
            {
                TempData["recaptcha"] = "Please verify that you are not a robot!";
            }
        }
        return View(model);

    }
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务索引(EmailFormModel模型、IEnumerable文件)
{
if(ModelState.IsValid)
{
列表路径=新列表();
foreach(文件中的var文件)
{
如果(file.ContentLength>0)
{
var fileName=Path.GetFileName(file.fileName);
var path=path.Combine(Server.MapPath(“~/App\u Data/uploads”),文件名);
file.SaveAs(路径);
路径。添加(路径);
}
}
var message=new MailMessage();
foreach(路径中的变量路径)
{
var fileInfo=新文件信息(路径);
var memoryStream=新的memoryStream();
使用(var stream=fileInfo.OpenRead())
{
stream.CopyTo(memoryStream);
}
memoryStream.Position=0;
字符串文件名=fileInfo.Name;
添加(新附件(memoryStream,fileName));
}
//这里是业务逻辑的其余部分
字符串EncodedResponse=Request.Form[“g-Recaptcha-Response”];
bool IsCaptchaValid=(ReCaptcha.Validate(EncodedResponse)=“真”?真:假);
if(IsCaptchaValid)
{
var body=“电子邮件发件人:{0}({1})

主题:{2}

消息:

{3}

”; message.To.Add(新邮件地址(“***@gmail.com”);//替换为有效值 message.From=新邮件地址(“***@ymailcom”);//替换为有效值 message.Subject=“您的电子邮件主题”; message.Body=string.Format(Body,model.FromName,model.FromEmail,model.FromSubject,model.message); message.IsBodyHtml=true; 使用(var smtp=new SmtpClient()) { var-credential=新网络凭据 { UserName=“***@gmail.com”,//替换为有效值 Password=“***”//替换为有效值 }; smtp.Credentials=凭证; smtp.Host=“smtp.gmail.com”; smtp.Port=587; smtp.EnableSsl=true; 等待smtp.SendMailAsync(消息); //返回重定向操作(“已发送”); ViewBag.Message=“您的邮件已发送!”; //TempData[“message”]=“message sent”; ModelState.Clear(); 返回视图(“索引”); } } 其他的 { TempData[“recaptcha”]=“请确认您不是机器人!”; } } 返回视图(模型); }
首先检查文件是否存在,然后尝试下面的代码

File.Delete("~/App_Data/uploads/XXXXX.xls");

首先检查文件是否存在,然后尝试下面的代码

File.Delete("~/App_Data/uploads/XXXXX.xls");

在发送电子邮件之前,您必须先检查

if (System.IO.File.Exists(fullPath of your file))
            {
                System.IO.File.Delete(fullPath of your file);
            }

在发送电子邮件之前,您必须先检查

if (System.IO.File.Exists(fullPath of your file))
            {
                System.IO.File.Delete(fullPath of your file);
            }
试试这个:

System.IO.DirectoryInfo di = new DirectoryInfo(path);

foreach (FileInfo file in di.GetFiles())
{
    file.Delete(); 
}
试试这个:

System.IO.DirectoryInfo di = new DirectoryInfo(path);

foreach (FileInfo file in di.GetFiles())
{
    file.Delete(); 
}

我强烈建议不要使用App_Data文件夹来存储任何文件,按照惯例,创建App_Data文件夹只是为了存储数据库文件

我强烈建议不要使用App_Data folder来存储任何文件,按照惯例,创建App_Data folder仅用于存储数据库文件

谢谢你的帮助,先生。谢谢你的帮助,先生。谢谢你的帮助,先生。谢谢你的帮助,先生。谢谢你的帮助,先生。谢谢你的帮助,先生。