【问题标题】:How to properly write file path for portable files?如何正确编写可移植文件的文件路径?
【发布时间】:2012-03-13 12:35:59
【问题描述】:

我开发了一个桌面系统,需要部署它。我的路径是完整的。请参见下面的示例。我担心当我部署我的系统时,它不会在他们的计算机上运行,​​因为他们没有 D 盘或 MY_THESIS 文件夹。帮忙?

System.Diagnostics.Process.Start(@"D:\MY_THESIS\WORKING FILES\WindowsFormsApplication2\WindowsFormsApplication2\User Manual\User Guide Outline.pdf");

【问题讨论】:

    标签: c# path


    【解决方案1】:

    最好的做法是写在一个你确定会存在的目录中,比如我的文档。

    这个 sn-p 让你可以访问这个目录:

    Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

    SpecialFolder 枚举让您可以访问其他常用目录。

    否则,如果您是选择放置 pdf 的人,您可以随时将 PDF 放在应用程序目录中,并使用 Assembly.GetExecutingAssembly().LocationSystem.IO.Path.GetDirectoryName(Application.ExecutablePath) 访问它

    【讨论】:

    • 为什么要将应用程序部署到“我的文档”...? =)
    • 我需要可移植文件的文件路径,因为我将用户手册和数据库连同整个源代码和 exe 放在一张 CD 中。我认为这行不通。
    • 哦,我明白了.. 所以基本上你有一个项目 A(命名它),现在该项目有源代码/数据库/用户手册,它是 pdf 格式的。是这样吗?
    【解决方案2】:

    假设您的 exe 与 PDF 位于同一目录中,只需使用以下命令:

    string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
    
    path = System.IO.Path.Combine(path, "User Guide Outline.pdf");
    System.Diagnostics.Process.Start(path);
    

    【讨论】:

    • 感谢史蒂夫的快速回复!我的 PDF 在 User Manual 文件夹下,而 exe 在 obj > Debug
    • 然后考虑将您的 EXE 和 PDF 部署到同一个目录。一个典型的部署方案将您的 EXE、您的依赖 DLL 和所有支持文件放在一个目录或其子目录中。
    • 史蒂夫,您知道我如何将this 与您给定的代码集成吗?
    • @Ritzel,该代码似乎不是很健壮。我会问另一个关于找到 Adob​​e EXE 路径的最佳实践的问题,然后从那里获取它:)
    【解决方案3】:

    使用 app.config 文件 那里

    connectionStrings>
       <add name="File Path" connectionString="D:\MY_THESIS\WORKING FILES\WindowsFormsApplication2\WindowsFormsApplication2\User Manual\User Guide Outline.pdf"
              />
    </connectionStrings>
    

    现在,一旦您在该机器上进行部署,您就可以选择连接字符串 xml 文件到该文件所在的路径。这样你才能得到那个文件。如果您不与项目一起部署。

    【讨论】:

    • 嗨,是的,我没有与项目一起部署,这就是为什么我需要一个能够读取目录中文件的路径,无论它位于哪个驱动器中。exe 将放置在一张CD。
    • 您打算如何从 cd 运行 exe。我知道它可以,但那会是直接点击exe而不安装或任何东西吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 2017-10-07
    • 2010-11-07
    • 1970-01-01
    • 2018-08-17
    • 2014-10-04
    • 2013-11-02
    相关资源
    最近更新 更多