Следующий мой код.Как избежать исключения несанкционированного доступа?
//string[] directories;
List<string> dirs = new List<string>(Directory.EnumerateDirectories("C:\\Users\\Josh"));
//string[] Files;
//directories = Directory.GetDirectories(@"C:\Users\Josh\", "*", SearchOption.AllDirectories);
SqlConnection myConn = new SqlConnection("Server=Josh-PC;database=Music;User ID=Josh; Password=Climber94; Trusted_Connection=True;");
string removeText = "Delete from Music.dbo.SongNamesAndInfo";
SqlCommand RemoveEntry = new SqlCommand(removeText, myConn);
myConn.Open();
RemoveEntry.ExecuteNonQuery();
myConn.Close();
//for (int d = 0; d < directories.Length; d++)
foreach (var dir in dirs)
{
List<string> files = new List<string>(Directory.EnumerateFiles(dir));
foreach (var file in files)
{
FileInfo oFileInfo = new FileInfo(file);
myConn.Open();
string cmdText = "Insert INTO Music.dbo.SongNamesAndInfo " +
"(Name,dtCreationTime,Extension,Length,DirectoryName)" +
"VALUES(@Name,@dtCreationtime,@Extension,@Length,@DirectoryName)";
SqlCommand addCmd = new SqlCommand(cmdText, myConn);
DateTime dtCreationTime = oFileInfo.CreationTime;
addCmd.Parameters.AddWithValue("@Name", oFileInfo.Name);
addCmd.Parameters.AddWithValue("@dtCreationtime", dtCreationTime);
addCmd.Parameters.AddWithValue("@Extension", oFileInfo.Extension);
addCmd.Parameters.AddWithValue("@Length", oFileInfo.Length.ToString());
addCmd.Parameters.AddWithValue("@DirectoryName", oFileInfo.DirectoryName);
if (oFileInfo.Extension.ToLower() == ".mp3" || oFileInfo.Extension.ToLower() == ".avi" ||
oFileInfo.Extension.ToLower() == ".mkv" || oFileInfo.Extension.ToLower() == ".m4a" ||
oFileInfo.Extension.ToLower() == ".aac" || oFileInfo.Extension.ToLower() == ".wav" ||
oFileInfo.Extension.ToLower() == ".mpa" || oFileInfo.Extension.ToLower() == ".wma" ||
oFileInfo.Extension.ToLower() == ".flv" || oFileInfo.Extension.ToLower() == ".m4v" ||
oFileInfo.Extension.ToLower() == ".mpg" || oFileInfo.Extension.ToLower() == ".mov" ||
oFileInfo.Extension.ToLower() == ".wmv" || oFileInfo.Extension.ToLower() == ".mp4")
{
addCmd.ExecuteNonQuery();
}
myConn.Close();
}
так, что им делать принимает список музыки и фильмов и размещения там свойств в базу данных SQL, но я хочу, чтобы найти все директории в файле пользователя. из-за appdata im получение
System.UnauthorizedAccessException был необработанным.
как я могу избежать этого? ошибка заключается в том, где он вытаскивает все файлы из пользовательской папки Josh.
это приложение работает как администратор, или, по крайней мере, пользователь, который имеет права на каталоги, о которых идет речь? – Claies
Да. это единственная учетная запись на компьютере. и будучи папкой данных приложения, я не нуждаюсь в ней, чтобы искать ее существ, это скрытая папка. –