c# - Path.GetFullPath 在 C# 中返回错误的路径

标签 c# wpf filepath

根据 MSDN 文档,要获取文件的完整文件路径,请使用

var fileName = Path.GetFullPath("KeywordsAndPhrases.txt");

我假设它提供了该文件所在项目的完整路径。

'K:\HeadlineAutoTrader\Autotrader.Infrastructure.HeadlineFeeds\Data\KeywordsAndPhrases.txt'

如果没有,则返回;

'K:\HeadlineAutoTrader\AutotraderTests\bin\Debug\Data\KeywordsAndPhrases.txt'

这有点道理,因为我正在测试的代码正在测试项目中运行。

所以问题是如何在同一解决方案中的另一个类库的文件夹中获取文本文件的完整文件路径?

这是一个基于 WPF 的项目,显然它在 Web 应用程序中会更容易,因为 Server.MapPath 工作得很好

最佳答案

当您调用 File.GetFullPath 时,库会查看正在执行的程序的当前目录。除非另有说明,否则这与可执行文件所在的文件夹相同。

您可能在 Visual Studio 中 KeywordsAndPhrases.txt 文件的属性中将“复制到输出目录”设置为“始终复制”或“如果较新则复制”,这意味着它被复制到与可执行文件相同的文件夹。否则,该文件可能已被其他一些进程复制到那里(例如,手动、构建后步骤批处理文件)。这就是它在 K:\HeadlineAutoTrader\AutotraderTests\bin\Debug 而不是 K:\HeadlineAutoTrader\Autotrader.Infrastructure.HeadlineFeeds 下找到文件的原因。

How does one get the full filepath of a text file in a folder in another class library within the same solution?

这个问题没有意义。可执行文件不知道 Visual Studio 项目中的类库或文件结构。可执行文件知道程序集中嵌入的资源或文件夹中的文件。如果要查找特定文件的完整路径,请使用 Environment.CurrentDirectory 将当前目录设置为该文件夹。或使用已知的相对路径。

关于c# - Path.GetFullPath 在 C# 中返回错误的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488666/

相关文章:

c - C共享库函数如何学习可执行文件的路径

c# - 如何规避对 setCurrentCellAddressCore 的重入调用?

c# - ASP.net 危险提交错误

c# - CXF Web 服务的 .NET 客户端身份验证和 SOAP 凭据 header

.net - 为什么 System.Windows.Threading.DispatcherTimer 不触发事件?

c# - 自定义消息弹出 WPF

java - Mac 上文件的路径(没有 Java 中的用户名)

python - 将目录添加到 python 路径,但是当我尝试导入时 python 给出错误

c# - 如何将现有项目推到列表末尾?

c# - 当属性值在 setter 内更改时更新 View