2013-06-03 46 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")它不知道什麼是服務器

編輯

我可以用它喜歡: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(); 
      }