在C#

时间:2015-10-04 08:08:37

标签: c# visual-studio-2015 filepath

我是C#的新手,我一直在尝试使用SoundPlayer类播放声音。因此,在我在visual studio(2015社区)的解决方案中,我创建了一个名为Music的文件夹,并在那里删除了一个wav文件。在属性中,我找到了文件路径,然后在SoundPlayer构造函数中使用。现在,它在桌面上。

我的问题是,我将实际程序(它只是控制台应用程序)移动到另一台计算机(具有不同的用户名......我不知道)。那么C#是否可以确定文件的新位置(目录)以便我不会收到错误?

SoundPlayer spPlayer = new SoundPlayer (@"C:\Users\tvavr\Desktop\Dango\mr_sandman.wav");
spPlayer.Play();

这是有效的代码。现在,我该如何改变这条道路呢?

谢谢你的答案。

3 个答案:

答案 0 :(得分:1)

使用动态路径如下:

SoundPlayer spPlayer = new SoundPlayer (Application.ExecutablePath +@"\mr_sandman.wav");

其中Application.ExecutablePath将动态获取您的应用程序文件夹

答案 1 :(得分:1)

这是一个只有你能回答的设计决定。当您编写需要加载文件的控制台应用程序时,您有几个选项

选项#1:在执行程序时,在程序的参数列表中指定路径

假设你的程序名称是playong,你可以这样运行:

playsong C:/path-to-music-file/song.wav

您可以从Main的参数列表中获取歌曲文件的名称。 args中的第一项是文件名:

static void Main(string[] args) {
  SoundPlayer spPlayer = new SoundPlayer(args[1]);
  spPlayer.Play();
}

选项#2:通过硬编码路径访问歌曲文件

static void Main() {
  SoundPlayer spPlayer = new SoundPlayer("C:/playsong/songs/song.wav");
  spPlayer.Play();
}

选项#3:访问相对于节目位置的歌曲文件

static void Main() {
  SoundPlayer spPlayer = new SoundPlayer(Application.ExecutablePath + "/songs/song.wav");
  spPlayer.Play();
}

如果您以后想要将其更改为图形用户界面(GUI)程序,则可以打开OpenFileDialog框,让用户选择该文件。

答案 2 :(得分:0)

.NET有built-in tools来访问当前用户桌面等位置: System.Environment.SpecialFolder.Desktop