none
copiar dos ficheros iguales RRS feed

  • Pregunta

  • buenos dias a todos.

    Como puedo hacer para copiar dos ficheros iguales en un directorio sin que me de error de que ya existe.

    dejo el codigo , gracias:

    Try        

    IfFile.Exists(CarpetaNueva & "\"& archivo) Then         

    File.Copy(CarpetaOrigen, CarpetaNueva & "\"& archivo)           

    else

                

    File.Copy(CarpetaOrigen, CarpetaNueva & "\"& archivo)

        

    EndIf


               

    'File.Move(CarpetaOrigen, CarpetaNueva & "\")


               

    'Dim fi As FileAttribute = File.GetAttributes(CarpetaNueva & "\" & archivo)


               

    'Dim imagen_miniatura As Image = Image.FromFile(CarpetaNueva & "\" & archivo).GetThumbnailImage(50, 50, Nothing, IntPtr.Zero)


               

    'imagen_miniatura.Save(CarpetaNueva & "\min_" & archivo)


               

    'Try


               

    '    Dim i As Process = Process.Start("Explorer.exe", CarpetaOrigen)


               

    '    i.Kill()


               

    '    File.Delete(CarpetaOrigen)


               

    'Catch ex As Exception


               

    '    'Nothing


               

    'End Try


           

    Catchex AsException


           

    EndTry

    viernes, 7 de junio de 2013 10:55

Respuestas

  • "Largoooooo" preguntó:

    > Como puedo hacer para copiar dos ficheros iguales en un
    > directorio sin que me de error de que ya existe.

    Hola:

    Si siempre vas a sobrescribir un archivo existente, para nada te sirve comprobar si existe o no, porque simplemente tienes que especificar el valor True al parámetro overwrite de la función compartida Copy de la clase System.IO.File, tal y como muestra el siguiente procedimiento:

     Friend Sub CopiarArchivo(fileName As String, carpetaDestino As String)
      
      ' Obtenemos el nombre del archivo
      Dim destFileName As String = Path.GetFileName(fileName)
      
      ' Nueva ruta del archivo especificado
      destFileName = Path.Combine(carpetaDestino, destFileName)
      
      ' Copiamos el archivo sobrescribiendo cualquier otro
      ' existente con el mismo nombre.
      File.Copy(fileName, destFileName, True)
      
     End Sub

    Cuando desees copiar el archivo, llamarías al procedimiento de la siguiente manera:

       Try
        CopiarArchivo("C:\Carpeta1\Archivo.txt", "C:\Carpeta2")
        
       Catch ex As Exception
        MessageBox.Show(ex.Message)
       
       End Try

    El primer parámetro tiene que contener la ruta y el nombre del archivo (el path completo); el segundo parámetro sólo la ruta de la carpeta donde deseas copiar el archivo.

    Un saludo


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.


    viernes, 7 de junio de 2013 11:10
    Moderador

Todas las respuestas

  • Si quieres tener dos archivos con el mismo nombre en un mismo directorio, lo que intentas de hacer es imposible, como mínimo se tiene que diferenciar el nombre en algún carácter.

    viernes, 7 de junio de 2013 11:01
  • "Largoooooo" preguntó:

    > Como puedo hacer para copiar dos ficheros iguales en un
    > directorio sin que me de error de que ya existe.

    Hola:

    Si siempre vas a sobrescribir un archivo existente, para nada te sirve comprobar si existe o no, porque simplemente tienes que especificar el valor True al parámetro overwrite de la función compartida Copy de la clase System.IO.File, tal y como muestra el siguiente procedimiento:

     Friend Sub CopiarArchivo(fileName As String, carpetaDestino As String)
      
      ' Obtenemos el nombre del archivo
      Dim destFileName As String = Path.GetFileName(fileName)
      
      ' Nueva ruta del archivo especificado
      destFileName = Path.Combine(carpetaDestino, destFileName)
      
      ' Copiamos el archivo sobrescribiendo cualquier otro
      ' existente con el mismo nombre.
      File.Copy(fileName, destFileName, True)
      
     End Sub

    Cuando desees copiar el archivo, llamarías al procedimiento de la siguiente manera:

       Try
        CopiarArchivo("C:\Carpeta1\Archivo.txt", "C:\Carpeta2")
        
       Catch ex As Exception
        MessageBox.Show(ex.Message)
       
       End Try

    El primer parámetro tiene que contener la ruta y el nombre del archivo (el path completo); el segundo parámetro sólo la ruta de la carpeta donde deseas copiar el archivo.

    Un saludo


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.


    viernes, 7 de junio de 2013 11:10
    Moderador