2013-06-03 3 views
1

На данный момент, я спасаю свой файл в каталог жестко закодированного в моем коде:Использование Server.MapPath для сохранения файла

var filePath = Path.Combine(@"C:\users\my documents\github\project\source\project\App_Data\stored\", package.Id + ".zip"); 

Но мне нужно, чтобы сохранить свой файл, используя Server.MapPath ... . как:

FileInfo userFile = new FileInfo(Path.Combine(Server.MapPath("~/App_Data/stored"), package.Id)); 

полная функция:

public void CompressAndDeleteSources(FlinkeMailPackage package) 
{ 
    var filePath = Path.Combine(@"C:\users\my documents\github\project\source\project\App_Data\stored\", package.Id + ".zip"); 

    using (ZipFile zipFile = new ZipFile(filePath)) 
    { 
     foreach (var file in package.FlinkeMailFileList) 
     {    
     string bestandsNaam = @"C:\users\my documents\github\project\source\project\App_Data\uploads\" + file.OriginalName; 
     zipFile.AddFile(bestandsNaam); 
     } 
     zipFile.Save(); 
    } 

    foreach (var file in package.FlinkeMailFileList) 
    { 
     var filePathToDelete = @"C:\users\my documents\github\project\source\project\App_Data\uploads\" + file.FileName; 
     File.Delete(filePathToDelete); 
    }  
    } 

Но когда я пытаюсь использовать Server.MapPath("~/App_Data/stored") он не знает, что сервер

EDIT

я могу использовать это нравится: HttpContext.Current.Server.MapPath("~/App_Data/stored"); Но я не могу использовать package.Id + ".zip" с ним, как, например: var savePath = HttpContext.Current.Server.MapPath("~/App_Data/stored"),package.Id + ".zip"));

+0

'Server.MapPath' будет отображать путь к вашему корню приложения. – vijay

ответ

4

Вы можете получить доступ к нему через текущий контекст HttpContext.Current.Server.MapPath("~/App_Data/stored");

, чтобы получить полный путь к файлу:

var filePath = Path.Combine(HttpContext.Current.Server.MapPath("~/App_Data/stored"), package.Id + ".zip"); 
+0

Хорошо, как я могу использовать, package.Id + ".zip" с ним. Я не могу использовать его как: var savePath = HttpContext.Current.Server.MapPath ("~/App_Data/stored"), package.Id + ".zip")); –

+0

см. Мое редактирование о том, как получить полный путь – jekcom

-1
  string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName); 
      if (fileName != "") 
      { 

       FileUpload1.SaveAs(Server.MapPath("../../Files/" + fileName)); 
       aComplain.FileName = fileName; 
       aComplain.FilePath = "../../Files/" + fileName; 

       string message = aComplainManager.SaveComplain(aComplain); 
       messageResult.Text = message; 
       messageResult.ForeColor = Color.Green; 
       Clear(); 
      } 

      else if (fileName == "") 
      { 
       string message = aComplainManager.SaveComplain(aComplain); 
       messageResult.Text = message; 
       messageResult.ForeColor = Color.Green; 
       Clear(); 
      } 
Смежные вопросы