项目文件的文件路径?

我正在使用C#中的媒体播放器,但是当我想进行测试时,我遇到了问题。

我必须使用以下路径创建一个新的对象歌曲:

@"C:\Users\Jesus Antonio\Desktop\JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3" 

它工作,但当我更改计算机时,我必须重写整个路径,我的项目称为JukeboxV2.0

在java中我记得你可以写一下例如路径

 @"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3" 

这将节省大量时间,因为我可以将我的项目带到不同的计算机并且它可以工作,但在这里我不知道如何做到这一点,任何人都知道吗?

你可以这样做,在你的应用程序环境文件夹中获取路径“Data \ ich_will.mp3”。

 string fileName = "ich_will.mp3"; string path = Path.Combine(Environment.CurrentDirectory, @"Data\", fileName); 

在我的情况下,它将返回以下内容:

 C:\MyProjects\Music\MusicApp\bin\Debug\Data\ich_will.mp3 

我在我的例子中使用Path.CombineEnvironment.CurrentDirectory 。 这些非常有用,允许您根据应用程序的当前位置构建路径。 Path.Combine组合两个或多个字符串来创建位置, Environment.CurrentDirectory为您提供应用程序的工作目录。

工作目录不一定与executable所在的路径相同,但在大多数情况下应该是,除非另有说明。

 Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3") 

基目录+你的文件名

我遇到了类似的问题,我的项目中有一个文件,并且想测试一个必须处理从FS加载文件并以某种方式处理它们的类。 我做的是:

  • 将文件test.txt添加到我的测试项目中
  • 解决方案资源管理器命中alt-enter (文件属性)
  • 在那里我设置BuildActionContentCopy to Output Directory Copy if newer ,我想Copy always会做到这一点

然后在我的测试中我只需要Path.Combine(Environment.CurrentDirectory, "test.txt")就是这样。 每当编译项目时,它都会将文件(及其所有的父路径,如果它位于文件夹中)复制到bin\Debug (或您正在使用的任何配置)文件夹中。

希望这有助于某人