Hola a tod@s nuevamente!
Estoy intentando hacer en un form que un programa de la unidad NAS pase a una carpeta.
Tengo el siguiente código:
Código:
Imports System.IO
Public Class ActualizarAgenda
Dim path As String
Dim path2 As String
Dim mediafile As String
Sub CopiaArchivoConProgreso(ByVal path As String, ByVal path2 As String, ByVal mediafile As String)
Dim fi As New IO.FileInfo(mediafile)
Dim sr As New IO.FileStream(path & mediafile, IO.FileMode.Open) 'lugar de origen
Dim sw As New IO.FileStream(path2 & mediafile, IO.FileMode.Create) 'lugar de destino
Dim len As Long = sr.Length - 1
For i As Long = 0 To len
sw.WriteByte(sr.ReadByte)
If i Mod 1000 = 0 Then 'Actualiza con cada 1 kb copiado
ProgressBar1.Value = i * 100 / len
Application.DoEvents()
End If
Next
ProgressBar1.Value = 0
sr.Close()
sw.Close()
MsgBox("Archivo Movido Correctamente") ' Para avisar de que se ha movido
Process.Start(path2 & mediafile) ' Ejecuto el programa
End Sub
Private Sub btnCopy_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCopy.Click
CopiaArchivoConProgreso(path, path2, mediafile)
End Sub
Private Sub ActualizarAgenda_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
path = "G:\Sistemas\App\Agenda\Versiones\"
path2 = "C:\temp\"
mediafile = "Agenda.exe"
End Sub
End Class
La unidad G es la unidad NAS.
He probado lo siguiente con la ruta del NAS:
path = "G:\Sistemas\App\Agenda\Versiones\"
path = "\\192.168.21.26\Compartida\Sistemas\App\Agenda\Ve rsiones\"
La unidad G conlleva \\192.168.21.26\Compartida
El error que me dá es el siguiente:
No se controló IOException
El proceso no puede obtener acceso al archivo 'G:\Sistemas\App\Agenda\Versiones\Agenda.exe' porque está siendo utilizado en otro proceso.
Si lo copio del mismo PC un archivo a otra carpeta me funciona correctamente, solo me da el error si lo cojo de la unidad NAS...
¿Alguna idea?
Muchas Gracias
Editado: He cambiado la ruta el NAS subiendo una carpeta y ha funcionado. Es decir, lo he dejado de la siguiente forma:
G:\Sistemas\App\Agenda\Agenda.exe'