Error de acceso a la ruta denegada en C#


He leído un post similar, pero no puedo resolver el problema.

He cambiado los permisos de Windows y cambiado las rutas.

Cuando intento guardar un archivo me lanza la excepción:

Acceso a la ruta **** denegado.

string route="D:\\";
FileStream fs = new FileStream(route, FileMode.Create); <--here is the problem
        StreamWriter write = new StreamWriter(fs);
        patient person = new patient();
        patient.name = textBox1.Text;
        patient.name2 = textBox2.Text;
Author: Mong Zhu, 2011-10-10

4 answers

Está intentando crear un objeto FileStream para un directorio (carpeta). Especifique un nombre de archivo (por ejemplo @"D:\test.txt") y el error desaparecerá.

Por cierto, sugeriría que use el constructor StreamWriter que toma una codificación como segundo parámetro, porque de lo contrario podría tener una sorpresa desagradable cuando intente leer el archivo guardado más tarde (usando StreamReader).

 93
Author: Alan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-09 20:53:47

¿Ha intentado especificar algún nombre de archivo?

Eg:

string route="D:\\somefilename.txt";
 9
Author: Renato Gama,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-09 20:55:24

Tl;dr versión: Asegúrese de que no está tratando de abrir un archivo marcado en el sistema de archivos como de solo lectura en modo de Lectura/Escritura.

Me he encontrado con este error en mis viajes tratando de leer en un archivo XML. He encontrado que en algunas circunstancias (se detalla a continuación) este error se generaría para un archivo a pesar de que la ruta y el nombre del archivo son correctos.

Detalles del archivo:

  • La ruta y el nombre del archivo son válidos, el archivo existe
  • Tanto la cuenta de servicio como el registro en usuario tienen permisos de control total para el archivo y la ruta completa
  • El archivo está marcado como de solo lectura
  • Se está ejecutando en Windows Server 2008 R2
  • La ruta al archivo estaba usando letras de unidad locales, no la ruta UNC

Al intentar leer el archivo mediante programación, se observó el siguiente comportamiento mientras se ejecutaba exactamente el mismo código:

  • Cuando se ejecuta como el usuario conectado, el archivo se lee sin error
  • Cuando se ejecuta como el servicio cuenta, al intentar leer el archivo genera el error de Acceso Denegado sin detalles

Para arreglar esto, tuve que cambiar la llamada al método del valor predeterminado (Apertura como RW) a abrir el archivo como RO. Una vez que hice ese cambio, dejó de lanzar un error.

 4
Author: Taegost,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-02 15:24:06

No tiene permisos para acceder al archivo. Asegúrese de que puede acceder al archivo en esa unidad.

string route= @"E:\Sample.text";
FileStream fs = new FileStream(route, FileMode.Create);

Debe proporcionar el nombre del archivo a crear. Por favor, pruebe esto, ahora se puede crear.

 1
Author: chennaiah.P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-20 06:55:37