AJUDA COM ATUALIZADOR

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM ATUALIZADOR

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#482433 - 21/06/2018 14:40:36

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


 Anexos estao visíveis somente para usuários registrados

Fala galera beleza? tenho um atualizador pro meu software, ele pega o .zip da rede, copia para uma pasta no C:/ da maquina e extrai..
porém em algumas máquinas as vezes apresenta o seguinte erro conforme anexo:


  Private Sub btnCopiar_Click(sender As Object, e As EventArgs) Handles btnCopiar.Click
      

        Try

        btnCopiar.Enabled = False
        MenuStrip1.Enabled = False
        Cursor = Cursors.AppStarting

        Dim streamRead As New System.IO.FileStream("\\servidor\Updater\LabSphere" + Versao + ".zip", System.IO.FileMode.Open)
    
        Dim streamWrite As New System.IO.FileStream("C:/SISTEMA/LabSphere" + Versao + ".zip", System.IO.FileMode.Create)
        
        Dim lngLen As Long = streamRead.Length - 1
        Dim byteBuffer(1048576) As Byte   'our stream buffer
        Dim intBytesRead As Integer    'number of bytes read

        While streamRead.Position < lngLen    'keep streaming until EOF
        
            intBytesRead = (streamRead.Read(byteBuffer, 0, 1048576))
        
            streamWrite.Write(byteBuffer, 0, intBytesRead)

            progressBar1.Value = CInt(streamRead.Position / lngLen * 100)
            Application.DoEvents()    'do it


        End While
    
        streamWrite.Flush()
        streamWrite.Close()
        streamRead.Close()
        streamRead.Dispose()
        streamWrite.Dispose()

        System.Threading.Thread.Sleep(500)

        btnCopiar.Enabled = False
        btnAtualizar.Enabled = True
        InstalarNovamenteToolStripMenuItem.Enabled = True
            Cursor = Cursors.Default

        Catch ex As Exception
            MessageBox.Show(ex.ToString)
            'MessageBox.Show("OPS! Ja tem um usuário realizando a cópia aguarde alguns segundos e tente CLICAR EM COPIAR NOVAMENTE!!!", "OPS! LEIA COM ATENÇÃO A MENSAGEM!", MessageBoxButtons.OK, MessageBoxIcon.Information)
            btnCopiar.Enabled = True
            btnAtualizar.Enabled = False
            InstalarNovamenteToolStripMenuItem.Enabled = False
            Cursor = Cursors.Default
        End Try

    End Sub


Alguem sabe alguma forma de copiar sem dar problema, mesmo usando Close e Dispose ta dando dor de cabeça

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#482436 - 21/06/2018 14:48:48

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
1 - Use blocos using SEMPRE que o objeto em questão implementa IDisposable(se possui um método Dispose() nele, geralmente é indicação disso).
2 - Uma das assinaturas do construtor de FileStream, contêm FileAccess e FileShare, experimente usar:

System.IO.FileStream("\\servidor\Updater\LabSphere" + Versao + ".zip", System.IO.FileMode.Open, FileAccess.Read, FileShare.Read)

Não esquecendo que isso deve ser a abertura de um bloco using.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#482459 - 22/06/2018 15:09:54

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Citação:
:
1 - Use blocos using SEMPRE que o objeto em questão implementa IDisposable(se possui um método Dispose() nele, geralmente é indicação disso).
2 - Uma das assinaturas do construtor de FileStream, contêm FileAccess e FileShare, experimente usar:

System.IO.FileStream("\servidorUpdaterLabSphere" + Versao + ".zip", System.IO.FileMode.Open, FileAccess.Read, FileShare.Read)

Não esquecendo que isso deve ser a abertura de um bloco using.


Então kerp tentei da seguinte forma:
  
         Public Shared Sub Copy(ByVal inputFilePath As String, ByVal outputFilePath As String)
        Dim bufferSize As Integer = 1024 * 1024

        Using fileStream As FileStream = New FileStream(outputFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite)
            Dim fs As FileStream = New FileStream(inputFilePath, FileMode.Open, FileAccess.ReadWrite)
            fileStream.SetLength(fs.Length)
            Dim bytesRead As Integer = -1
            Dim bytes As Byte() = New Byte(bufferSize - 1) {}


            Dim lngLen As Long = bytes.Length - 1

            While bytesRead < lngLen
                fileStream.Write(bytes, 0, bytesRead)
            End While

        End Using
    End Sub


Porém continuou dando erro..  

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#482464 - 22/06/2018 16:00:17

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


  

Using fileStream As FileStream = New FileStream(outputFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite)
            Using fs as  FileStream = New FileStream(inputFilePath, FileMode.Open, FileAccess.ReadWrite)           
                  fileStream.SetLength(fs.Length)
                  Dim bytesRead As Integer = -1
                  Dim bytes As Byte() = New Byte(bufferSize - 1) {}
                  Dim lngLen As Long = bytes.Length - 1

                 While bytesRead < lngLen
                    fileStream.Write(bytes, 0, bytesRead)
                 End While

            End Using
        End Using





#482514 - 26/06/2018 09:03:23

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Dim bytesRead As Integer
        Dim buffer(4096) As Byte
        Using inFile As New System.IO.FileStream("\\servidor\Updater\LabSphere" + Versao + ".zip", IO.FileMode.Open, IO.FileAccess.Read)
            Using outFile As New System.IO.FileStream("C:/SISTEMA/LabSphere" + Versao + ".zip", IO.FileMode.Create, IO.FileAccess.Write)
                Dim lngLen As Long = inFile.Length - 1
                Do
                    bytesRead = inFile.Read(buffer, 0, buffer.Length)
                    If bytesRead > 0 Then
                        outFile.Write(buffer, 0, bytesRead)

                        progressBar1.Value = CInt(inFile.Position / lngLen * 100)
                        Application.DoEvents()


                    End If
                Loop While bytesRead > 0
            End Using
        End Using  


Continua dando a exception de processo sendo usado.. muito estranho

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#482515 - 26/06/2018 09:20:47

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Qual dos dois está sendo usado, o local ou o remoto?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#482525 - 26/06/2018 13:33:46

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Citação:
:
Qual dos dois está sendo usado, o local ou o remoto?

O remoto que se encontra no //servidor .. é o .zip com os arquivos no sistema..


_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#482528 - 26/06/2018 14:01:23

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Faça um teste: Coloque o arquivo em uma pasta local e faça o processo todo localmente. Se ocorrer bem, significa que algo no servidor está abrindo o arquivo em modo exclusivo. Pode ser qualquer coisa, até um antivírus

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#482532 - 26/06/2018 14:13:00

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Citação:
:
Faça um teste: Coloque o arquivo em uma pasta local e faça o processo todo localmente. Se ocorrer bem, significa que algo no servidor está abrindo o arquivo em modo exclusivo. Pode ser qualquer coisa, até um antivírus

O problema é que em algumas maquinas ele copia normal, parece que tem um número maximo de cópias..
O servidor é Linux será que ele encherga como alguma ameaça e bloqueia?

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


#482533 - 26/06/2018 14:18:37

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Usa SAMBA?

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#482553 - 27/06/2018 13:06:20

MESTRE
GUARULHOS
Cadast. em:Novembro/2013


Citação:
:
Usa SAMBA?

Zentyal

_______________________________________________
"A alegria está na luta, na tentativa, no sofrimento envolvido e não na vitória propriamente dita."
Gandhi.


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MESTRE em 15/08/2018 08:43:47