Estoy intentando hacer en un form que un programa de la unidad NAS pase a una carpeta.
Tengo el siguiente código:
Código:
La unidad G es la unidad NAS.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
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'