目前,我有一个程序可以在用户设置目录和子目录中搜索音乐文件并将它们添加到集合中。但是,如果它遇到的目录之一受到保护,那么程序就会崩溃。我想知道如何在尝试搜索目录之前检查用户是否有权访问该目录以避免此问题。下面是我用于搜索的代码,它目前包含“系统卷信息”的基本解决方法,但由于可能存在其他受保护的目录,我想将其更改为包含它们。
public void SearchForMusic()
{
//Searches selected directory and its sub directories for music files and adds their path to ObservableCollection<string> MusicFound
foreach (string ext in extentions)
{
foreach (string song in Directory.GetFiles(SearchDirectory, ext))
{
musicFound.Add(song);
}
foreach (string directory in Directory.GetDirectories(SearchDirectory))
{
if (directory.Contains("System Volume Information"))
{
}
else
{
foreach (string song in Directory.GetFiles(directory, ext))
{
musicFound.Add(song);
}
foreach (string subDirectory in Directory.GetDirectories(directory))
{
foreach (string subSong in Directory.GetFiles(subDirectory, ext))
{
musicFound.Add(subSong);
}
}
}
}
}
}
非常感谢 :)