Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: dark_one88 en 25 Mayo 2011, 15:35 pm



Título: Como crear un .exe en Visual studio 2010 con permisos de escritura en C:Windows\
Publicado por: dark_one88 en 25 Mayo 2011, 15:35 pm
Buenas q tal,
Aca estoy de nuevo con otra duda como puedo crear un .exe q me permita crear una carpeta en C:\Windows\"Nombre de mi carpeta"\"mi archivo.txt"..
lo que quiero es editar ese archivo pero como no tiene permisos no me lo puede editar me da error.. alguien podria ayudarme en eso... de ante mano gracias


Título: Respuesta
Publicado por: Krähne en 25 Mayo 2011, 23:05 pm
¡Hola!...

Parece que tu error se debe a que no estás cerrando el archivo acabado de crear, aquí te dejo un ejemplo de cómo crear un directorio, un archivo de texto y agregarle información a éste.

En C#:

Código
  1. using System.IO;
  2.  
  3.        static void Main(string[] args)
  4.        {
  5.            Directory.CreateDirectory(@"C:\WINDOWS\DirectorioPrueba"); //Creamos el directorio.
  6.            string Archivo = @"C:\WINDOWS\DirectorioPrueba\Archivo.txt"; //Declaramos un nuevo nombre para el archivo de texto.
  7.  
  8.            FileStream FS = new FileStream(Archivo, FileMode.Create, FileAccess.ReadWrite); //Lo creamos con FileStream, pasándo como parámetros FileMode.Create, y FileAccess.ReadWrite para poder leer y escribir datos del archivo.
  9.            FS.Close(); //Luego de crearlo, lo cerramos.
  10.  
  11.            StreamWriter SW = new StreamWriter(Archivo); //Abrimos el archivo de texto con StreamWriter
  12.  
  13.            for (int i = 1; i < 101; i++) //Creamos un bucle.
  14.            {
  15.                SW.WriteLine("Escribiéndo {0} líneas en el archivo de texto.", string.Format("{0:D3}", i)); //Escribimos datos en el archivo de texto.
  16.            }
  17.  
  18.            SW.Write(Environment.NewLine + "Bucle finalizado."); //Finalizamos la escritura de datos.
  19.  
  20.            SW.Close(); //Si no haremos más nada con el, lo cerramos.
  21.        }

En VB.NET:

Código
  1. Imports System.IO
  2.  
  3.     Sub Main()
  4.        Directory.CreateDirectory("C:\WINDOWS\DirectorioPrueba") 'Creamos el directorio.
  5.        Dim Archivo As String = "C:\WINDOWS\DirectorioPrueba\Archivo.txt" 'Declaramos un nuevo nombre para el archivo de texto.
  6.  
  7.        Dim FS As New FileStream(Archivo, FileMode.Create, FileAccess.ReadWrite) 'Lo creamos con FileStream, pasándo como parámetros FileMode.Create, y FileAccess.ReadWrite para poder leer y escribir datos del archivo.
  8.        FS.Close() 'Luego de crearlo, lo cerramos.
  9.  
  10.        Dim SW As New StreamWriter(Archivo) 'Abrimos el archivo de texto con StreamWriter
  11.  
  12.        For i As Integer = 1 To 100 'Creamos un bucle.
  13.            SW.WriteLine("Escribiéndo {0} líneas en el archivo de texto.", String.Format("{0:D3}", i)) 'Escribimos datos en el archivo de texto.
  14.        Next
  15.  
  16.        SW.Write(Environment.NewLine & "Bucle finalizado.") 'Finalizamos la escritura de datos.
  17.  
  18.        SW.Close() 'Si no haremos más nada con el, lo cerramos.
  19.    End Sub

Publico dos códigos porque no especificaste el lenguaje.

Como notas, al momento de crear el archivo, lo cierro con FS.Close(); y al momento de agregarle información también lo cierro con SW.Close();. Creo que tu problema se debía a que no lo estabas haciendo.

Espero sea útil.

Gruß.


Título: Re: Como crear un .exe en Visual studio 2010 con permisos de escritura en C:Windows\
Publicado por: dark_one88 en 30 Mayo 2011, 23:37 pm
Gracias!! eso es creo el codigo q estaba buscando yo no lo estaba haciendo asi ... yo lo acia de esta forma
My.Computer.FileSystem.WriteAllText(*Direccion*, *texto*, False)
pero ahora voy a probar tu cod!! graicas


Título: Re: Como crear un .exe en Visual studio 2010 con permisos de escritura en C:Windows\
Publicado por: Krähne en 30 Mayo 2011, 23:54 pm
Gracias!! eso es creo el codigo q estaba buscando yo no lo estaba haciendo asi ... yo lo acia de esta forma
My.Computer.FileSystem.WriteAllText(*Direccion*, *texto*, False)
pero ahora voy a probar tu cod!! graicas

No te preocupes, seguramente funciona, al menos aquí funcionaba de mil maravillas.

Gruß.