在 C# 中查找文件的目录

Posted

技术标签:

【中文标题】在 C# 中查找文件的目录【英文标题】:Find the directory of a file in C# 【发布时间】:2015-10-04 08:08:36 【问题描述】:

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

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

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

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

感谢您的回答。

【问题讨论】:

***.com/questions/20717407/…, ***.com/questions/20717407/…, ***.com/questions/7551319/…, ***.com/questions/12335618/… 您想在程序后面实际存在的地方播放声音吗? 如果你想一直播放同一个文件,最好从资源中播放,而不是从目录中播放。这样可以确保它始终存在。您还可以使用Path.Combine 为新位置构建路径 【参考方案1】:

使用如下动态路径:

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

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

【讨论】:

请不要使用“动态”作为流行语,使用Path.Combine()组合路径。【参考方案2】:

这是一个只有您可以回答的设计决策。当您编写需要加载文件的控制台应用程序时,您有多种选择

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

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

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 对话框,让用户选择文件。

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于在 C# 中查找文件的目录的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本文件c#中的字符串已知值之后查找和获取字符串

c#遍历文件夹获得所有文件

如何使用 C# 中的 VirusTotal.NET 库查找文件是不是被病毒感染?

Linux中如何在指定目录下查找文件?

Linux中如何查找文件夹 ?

如何进行模糊查找文件