Estoy usando System.IO.Directory.Delete
y trato de eliminar carpetas del sistema como 'My Music', 'My Videos', etc. errores similares a "Acceso a la ruta del sistema 'C: \ users \ jbloggs \ Saved Games' denegado". Sin embargo, puedo eliminar estas carpetas a través del Explorador sin ningún problema, tengo permisos completos para estas carpetas. ¿Alguna sugerencia sobre lo que puedo probar?"Acceso a la ruta del sistema denegado" cuando se usa 'System.IO.Directory.Delete'
Mi código:
public static void ClearAttributes(string currentDir)
{
if (Directory.Exists(currentDir))
{
string[] subDirs = Directory.GetDirectories(currentDir);
foreach (string dir in subDirs)
ClearAttributes(dir);
string[] files = files = Directory.GetFiles(currentDir);
foreach (string file in files)
File.SetAttributes(file, FileAttributes.Normal);
}
}
Uso:
try
{
ClearAttributes(FolderPath);
System.IO.Directory.Delete("C:\\users\\jbloggs\\Saved Games", true);
}
catch (IOException ex)
{
MessageBox.Show(ex.Message);
}
No hay coincidencias relevantes de Google con la cadena exacta "Acceso a la ruta del sistema". ¿Es esta la redacción exacta del mensaje de error? –
Intenta citar tu cadena de ruta. Use @ "C: \ users \ jbloggs \ Saved Games". También, muestra 'ex.ToString()'. Finalmente, esto está relacionado con .NET, no con el lenguaje de programación C#. –
Los atributos no son siempre el problema. Otra causa es que alguna aplicación tiene ese directorio o algo debajo de él abierto. En mi caso, ¡la aplicación era Windows Explorer! Tenía el directorio relevante bloqueado, a pesar de que la carpeta "actual" estaba fuera de la que estaba intentando cambiar el nombre. Mi aplicación no pudo cambiar el nombre del directorio hasta que cerré Explorer. –