2013-11-28 3 views
1

Я пытаюсь удалить файл в контроллере:Как получить доступ к статическому классу System.IO.File из MVC-контроллера?

Контроллер:

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

Значение переменной nameDocFoto имеет файл имя Значение переменной реж имеет каталог И путь имеет nameDocFoto + каталог (как это правильно)

Мне нужен код для удаления файла. Могу я мне помочь? Я просто попробовать что-то вроде этого:

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 
+2

Используйте 'System.IO.File.Delete()', поскольку 'File()' является методом 'Controller'. – CodeCaster

+0

и im, используя 'using System.IO;' – CesarMiguel

+0

@CesarMiguel и до сих пор с помощью вашего метода «Файл()». – AgentFire

ответ

5

На месте File.Delete(path), которые в контексте контроллера будет использовать версию контроллеров метода; вам нужно использовать System.IO.File.Delete() точно так же, чтобы получить доступ к версии ввода/вывода системы (которая вам нужна). Если вы не укажете System.IO.File. до delete, он будет по умолчанию версией контроллеров, даже если у вас есть оператор using для System.IO в верхней части файла.

+0

Да, это так. Благодарю. – CesarMiguel

Смежные вопросы