Estoy tratando de comprobar si el archivo existe, si es así no hace nada. Si el archivo no existe se crea el archivo de texto. Entonces quiero escribir texto para ese archivo. A donde voy mal con este código? Sólo estoy tratando de escribir varias líneas en el archivo de texto y que la parte no está funcionando. Se crea el archivo de texto… no sólo a la escritura.

Dim file As System.IO.FileStream
 Try
  ' Indicate whether the text file exists
  If My.Computer.FileSystem.FileExists("c:\directory\textfile.txt") Then
    Return
  End If

  ' Try to create the text file with all the info in it
  file = System.IO.File.Create("c:\directory\textfile.txt")

  Dim addInfo As New System.IO.StreamWriter("c:\directory\textfile.txt")

  addInfo.WriteLine("first line of text")
  addInfo.WriteLine("") ' blank line of text
  addInfo.WriteLine("3rd line of some text")
  addInfo.WriteLine("4th line of some text")
  addInfo.WriteLine("5th line of some text")
  addInfo.close()
 End Try
  • Lo que en primer lugar te hizo pensar que hay algo mal con este código? te encontraste algún error o un comportamiento inesperado?
  • Sí, el «textfile.txt» se crea en el directorio de la carpeta, pero luego no me deja escribir en el archivo. Me sale un error que dice Una excepción de primera oportunidad de tipo ‘System.IO.IOException’ se ha producido en mscorlib.dll El error en el proceso: Sistema.Windows.Los formularios.MouseEventArgs
  • ¿Que compilar? Usted tiene un Try sin Catch o Finally.
InformationsquelleAutor Jesse Alford | 2013-02-15

3 Comentarios

  1. 12

    No parecen ser correctamente la liberación de los recursos asignados con este archivo.

    Asegúrese de que usted siempre envolver IDisposable recursos en el Uso de las declaraciones para asegurar que todos los recursos están debidamente liberado tan pronto como haya terminado de trabajar con ellos:

    ' Indicate whether the text file exists
    If System.IO.File.exists("c:\directory\textfile.txt") Then
        Return
    End If
    
    Using Dim addInfo = File.CreateText("c:\directory\textfile.txt")
        addInfo.WriteLine("first line of text")
        addInfo.WriteLine("") ' blank line of text
        addInfo.WriteLine("3rd line of some text")
        addInfo.WriteLine("4th line of some text")
        addInfo.WriteLine("5th line of some text")
    End Using

    pero en su caso con la Archivo.WriteAllLines método parece más apropiado:

    ' Indicate whether the text file exists
    If System.IO.File.exists("c:\directory\textfile.txt") Then
        Return
    End If
    
    Dim data As String() = {"first line of text", "", "3rd line of some text", "4th line of some text", "5th line of some text"}
    File.WriteAllLines("c:\directory\textfile.txt", data)
    • Eres increíble!!! Funciona!!! 😀
  2. 1

    Todo funciona muy bien! – Esta no es la mejor manera de crear y escribir en un archivo – prefiero crear el texto que quiero escribir y, a continuación, sólo tienes que escribir a un archivo nuevo, pero dado su código, lo único que falta es tener que cerrar el archivo creado antes de la escritura.
    Acaba de cambiar esta línea:

    file = System.IO.File.Create("c:\directory\textfile.txt")

    a:

    file = System.IO.File.Create("c:\directory\textfile.txt")
    file.close

    Todo el resto va a trabajar.

    • la respuesta es la más aceptada de forma… +1
  3. 1
     file = System.IO.File.Create("path")

    Cerrar el archivo una vez creado, a continuación, pruebe a escribir en él.

     file.Close()
         Dim addInfo As New System.IO.StreamWriter("path")

Dejar respuesta

Please enter your comment!
Please enter your name here