首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 專案中正確讀取內嵌或相對路徑檔案的方法

     編輯:程式設計綜合問答

常見情境

在 C# 專案中,常需要讀取專案目錄下的 XML、JSON、圖片等檔案。直接使用相對路徑(如 xml/國內城市.xml)在開發環境可能正常,但發布後路徑會改變,導致找不到檔案。

ASP.NET / Web 專案:使用 Server.MapPath

若在 Web 專案(ASP.NET WebForms、MVC)中,且檔案置於專案根目錄下的 xml 資料夾:

// 在 .aspx.cs 或 Controller 中
string path = Server.MapPath("~/xml/國內城市.xml");

在一般類別中需透過 HttpContext.Current:

string path = System.Web.HttpContext.Current.Server.MapPath("~/xml/國內城市.xml");

注意:專案需參考 System.Web.dll。

WinForms / WPF / Console 專案:使用應用程式基底目錄

非 Web 專案應避免使用 Server.MapPath,改用 AppDomain.CurrentDomain.BaseDirectory 或 Application.StartupPath(WinForms)取得執行檔所在目錄,再組合相對路徑:

// WinForms
string path = Path.Combine(Application.StartupPath, "xml", "國內城市.xml");

// WPF / Console
string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "xml", "國內城市.xml");

內嵌資源的替代方案

若檔案不需外部修改,可將其設為「內嵌資源」,透過 Assembly.GetManifestResourceStream 讀取,完全不受路徑影響。

總結

  • Web 專案:Server.MapPath("~/*")
  • 桌面專案:AppDomain.BaseDirectory + 相對路徑
  • 唯讀資料:考慮內嵌資源

掌握正確路徑解析方式,讓專案在開發、測試、生產環境都能穩定讀取檔案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved