現在、ユーザーセットのディレクトリとサブディレクトリで音楽ファイルを検索し、それらをコレクションに追加するプログラムがあります。ただし、それが通過するディレクトリの1つが保護されている場合、プログラムはフォールオーバーします。この問題を回避するために、検索を試みる前に、ユーザーがディレクトリにアクセスできるかどうかを確認する方法を知りたいと思いました。以下は私が検索に使用しているコードです。現在、「システムボリューム情報」の基本的な回避策が含まれていますが、他の保護されたディレクトリがある可能性があるため、これを変更してそれらを含めたいと思いました。
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);
}
}
}
}
}
}
どうもありがとう :)