В настоящее время у меня есть программа, которая ищет музыкальные файлы в каталоге и подкаталогах, заданных пользователем, и добавляет их в коллекцию. Однако, если один из каталогов, к которому он обращается, защищен, тогда программа падает. Я хотел знать, как я могу проверить, есть ли у пользователя доступ к каталогу, прежде чем искать его, чтобы избежать этой проблемы.
Ниже приведен код, который я использую для поиска, в настоящее время он содержит базовый обход «Информации о системных томах», но, поскольку существует вероятность, что могут быть другие защищенные каталоги, я хотел бы изменить это, чтобы включить их.
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);
}
}
}
}
}
}
Большое спасибо:)