【问题标题】:Path to a text file in a complex hierarchy复杂层次结构中文本文件的路径
【发布时间】:2023-03-17 03:26:02
【问题描述】:

在我的解决方案中,我有一个名为“Server”的文件夹。此文件夹包含一个名为“InvestmentAdvisory”的项目,其中包含文件夹 Report/Languages/。内部语言是一个“翻译”类和一个 CSV 文件。该类应该加载 CSV 文件。

“翻译”类的命名空间是这样的:

 "Server.Modules.InvestmentAdvisory.Report.Languages"

构建应用程序后,CSV 文件最终位于:

 MyApplication\Main\Source\InvestmentAdvisory.Services.Implementation\bin\Debug\Report\Languages\

如何从 Translation 类内部找到 CSV 的相对路径?

【问题讨论】:

  • 请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。

标签: c# .net path


【解决方案1】:

对不起,如果我不理解,但如果您需要应用程序的目录,您可以使用获取路径

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)

【讨论】:

    【解决方案2】:

    假设您的程序集/exe 输出将在

    MyApplication\Main\Source\InvestmentAdvisory.Services.Implementation\bin\Debug

    可以使用相对路径:

    .\Report\Languages\CsvFileName.csv
    

    最简单的方法是将 csv 文件保存在输出文件夹中。

    1. 将 csv 添加到项目中

    2. 选择 csv 文件并在属性窗口中 (如果不存在按 F4 打开窗口),设置复制到输出 目录(总是/如果更新)。

    那么只要程序集/exe 都在同一个文件夹(即输出文件夹)中,您就不需要路径。

    【讨论】:

    • CSV 文件实际上被复制到“MyApplication\Main\Source\InvestmentAdvisory\bin\Debug\Report\Languages”。您建议的相对路径会产生“错误”路径:“MyApplication\Main\Source\Server.Deploy.MyApplication.Web\Report\Languages\ReportExpress_Languages.csv”
    • 对不起!它是一个网络应用程序吗?
    • HttpContext.Current.Server.MapPath("/") 将为您提供您的网站/应用程序所在的 Web 服务器的根目录。您应该能够从那里映射路径?
    • 我刚刚注意到 CSV 文件也被复制到您认为的位置。对不起,我把你弄错了,但客户端是一个网络应用程序。这里我在服务器端,一个 WCF 服务器。
    • 试试这个(可能需要一点编辑):HttpContext.Current.Server.MapPath("/") + "\Report\Languages\CsvFileName.csv"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-09
    相关资源
    最近更新 更多