FILECOPY COM PROGRESSBAR???
Pessoal, boa tarde!!
Quero saber, se tem como definir o percentual de uma operação de copia de algum arquivo, através do FileCopy???, para ser mostrando em um controle ProgressBar1 por exemplo?
Falow
Joerbeth
Quero saber, se tem como definir o percentual de uma operação de copia de algum arquivo, através do FileCopy???, para ser mostrando em um controle ProgressBar1 por exemplo?
Falow
Joerbeth
Cara, não testei, mas dê uma olhada: COPIAR ARQUIVOS E EXIBIR PROGRESSO
Que merda complicada, más estou vendo
Tá errada a função lá, mas consegui resolver:
Coloque essa função num módulo ou no form:
Para usar, é só chamar a função, passar a origem, o destino e a barra de progresso (não obrigatória):
Coloque essa função num módulo ou no form:
Public Function CopiaArquivo(src As String, dst As String, Optional ByVal objProgressBar As Control) As Single
Static Buf$
Dim BTest!, FSize!
Dim Chunk%, F1%, F2%
Const BUFSIZE = 1024
If Not objProgressBar Is Nothing Then
objProgressBar.Max = 100
End If
If Dir(src) = "" Then MsgBox "Arquivo não encontrado!": Exit Function
If Len(Dir(dst)) Then
If MsgBox(UCase(dst) & Chr(13) & Chr(10) & "O Arquivo já existe!" & vbCrLf & "Sobrepor?", 4) <> 6 Then Exit Function
Kill dst
End If
DoEvents
On Error GoTo FileCopyError
F1 = FreeFile
Open src For Binary As F1
F2 = FreeFile
Open dst For Binary As F2
FSize = LOF(F1)
BTest = FSize - LOF(F2)
Do
If BTest < BUFSIZE Then
Chunk = BTest
Else
Chunk = BUFSIZE
End If
Buf = String(Chunk, " ")
Get F1, , Buf
Put F2, , Buf
BTest = FSize - LOF(F2)
' __Call percent display here__
If Not objProgressBar Is Nothing Then
objProgressBar.Value = 100 - Int(100 * BTest / FSize)
End If
Loop Until BTest = 0
Close F1
Close F2
CopiaArquivo = FSize
Exit Function
FileCopyError:
MsgBox "Erro ao copiar!", vbExclamation
Close F1
Close F2
Exit Function
End Function
Para usar, é só chamar a função, passar a origem, o destino e a barra de progresso (não obrigatória):
If CopiaArquivo("C:\Origem\Arquio.ext", "C:\Destino\Arquio.ext", ProgressBar1) Then
MsgBox "Cópia realizada com sucesso!", vbInformation
Else
MsgBox "O arquivo não pode ser copiado!", vbExclamation
End If
Seguinte, funcionou assim, copiando da unidade C para unidade C ou D, beleza, o progressBar corre diretitinho, más quando o destino é a unidade A, corre somente 3 pontos na progress e para, só preenche o resto quando mostra a mensagem da "Cópia realizada com sucesso!", outra coisa, o ProgressBar1 na hora de chamar a função, se não especificar, como vamos saber o progresso da operação???.
Falow
Falow
Kra, agora o progressbar correu normal, más me diz, tem como colocar a numeração em um label sei lá correndo de 0...até 100%??
Falow
Joerbeth
Falow
Joerbeth
Citação:ProgressBar1 na hora de chamar a função, se não especificar, como vamos saber o progresso da operação???
Só não especificaria se não precisasse saber o progresso mesmo...
Citação:JOERBETH escreveu:
Kra, agora o progressbar correu normal, más me diz, tem como colocar a numeração em um label sei lá correndo de 0...até 100%??
Falow
Joerbeth
Vc pode usar o XPProgressBar, que já faz isso sozinha...flw
Muito bom Matioli!
Tópico encerrado , respostas não são mais permitidas