【问题标题】:How to access the static System.IO.File class from an MVC Controller? [duplicate]如何从 MVC 控制器访问静态 System.IO.File 类? [复制]
【发布时间】:2013-11-28 18:56:07
【问题描述】:

我尝试删除控制器中的文件:

控制器:

[AcceptVerbs(HttpVerbs.Get)]
public JsonResult EliminarDocFotoContrato(int? DocFotoID)
{    
DocumentosFotosContrato docFoto = db.DocumentosFotosContrato.Find(DocFotoID);
var nomeDocFoto = docFoto.CaminhoDocFoto;
var dir = Server.MapPath("/uploads");
var path = Path.Combine(dir, nomeDocFoto);
var result = "Documento / Foto apagada.";
return Json(result, JsonRequestBehavior.AllowGet);
}

var nameDocFoto 具有名称文件 var dir 有目录 并且路径有nameDocFoto + dir(没错)

现在我需要删除文件的代码。我能帮帮我吗? 我只是尝试这样的事情:

File.Delete(path);

但得到这个错误:

Error   2   'System.Web.Mvc.Controller.File(string, string, string)' is a 'method', which is not valid in the given context D:\VS2010\Projects\MvcTesteLayout\MvcTesteLayout\Controllers\_DadosComerciais\ContratoController.cs 1511    17  MvcTesteLayout

【问题讨论】:

  • 使用System.IO.File.Delete(),因为File()Controller的一个方法。
  • 我正在使用using System.IO;
  • @CesarMiguel 并且仍然有来自控制器的 File() 方法。
  • 感谢@CodeCaster,它可以工作

标签: c# asp.net-mvc file


【解决方案1】:

代替File.Delete(path),在控制器的上下文中将使用该方法的控制器版本;您需要完全使用System.IO.File.Delete() 来访问系统输入/输出版本(这是您需要的版本)。如果您没有在 delete 之前指定 System.IO.File.,即使文件顶部有 System.IO 的 using 语句,它也会默认为控制器版本。

【讨论】:

    猜你喜欢
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多