USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Forçar a copia de um Arquivo
Scaliburth
BELO HORIZONTE
MG - BRASIL
ENUNCIADA !
Postada em 29/11/2005 14:11 hs            

E ai pessoal, tudo beleza?

 

 

Gostaria de tirar uma dúvida com vocês, na verdade seria mais um auxilio.

 

Estou colocando um commandbutton no meu form para que ele faça um backup de um arquivo para um diretorio ou disco(“pendrive”). Até ai tudo bem, consegui fazer beleza. Acontece que quando o arquivo está sendo acessado por outro terminal, ele não copia. Já coloquei um timer para ficar pesquisando em centesimos de segundos, quando o arquivo deixar de ser acessado, para então fazer a copia, mas não adiantou. Se alguem tiver alguma outra idéia ou outra função que FORCE a copia do arquivo, por favor postem. Se abaixo os códigos que estou usando:

 

Para o CommandButton

FileCopy “ArqOrigem”, "ArqDestino”

Se estiver sendo usado Timer1.enabled=true

 

 

Private Sub Timer1_Timer()      ‘Interval do Timer1=5’

Timer1.Enabled = False

On Error GoTo ErrorArq

If Dir$(Existir ArqDestino") <> "" Then

Msgbox “Pronto”

Else

FileCopy “ArqOrigem”, "ArqDestino”

End If

ErrorArq:

End Sub
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 29/11/2005 15:50 hs            
Amigo,
 
O código está perfeito....
Qto a copiar com o arquivo em Uso, ai vc está falando das diretivas de segurança do Windows... sinto muito, mas acho q vc nao vai conseguir isso nao...
Talvez tenha alguma API que derrube o processo que está usando o arquivo (eu nao conheço), mas copiar arquivo em uso é PROIBIDO pelo Windows...
 
Flw!


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

   
Dirceu
NOVO HAMBURGO
RS - BRASIL
ENUNCIADA !
Postada em 04/10/2006 15:46 hs            
bem... meio atrasadinhu, mas pode servir ainda pra outros usuários..
eu uso essa função para copiar arquivos e ele copia memso que o arquivo esteja sendo executado, pois copia byte a byte... uso direto para fazer backup de base de dados que num podem ficar sem estar sendo acessadas... em caso de não entender, ou precisar d emais informações eh soh entrar em contato valew!!
obs.. a variavel Pgb eh para o caso de querer exibir uma progress bar ok?
 
Function CopiarArquivo(Origem As String, Destino As String, Pgb As Control) As Long
  Static Buff As String
  Dim Teste As Long, stMsg As String
  Dim Fsize As Long
  Dim Tam As Integer
  Dim F1 As Integer
  Dim F2 As Integer
  Const BufSize = 1024
  On Error GoTo fileErro
  F1 = FreeFile
  Open Origem For Binary As F1
  F2 = FreeFile
  Open Destino For Binary As F2
  Fsize = LOF(F1)
  Teste = Fsize - LOF(F2)
  Pgb.Max = Fsize + 1
  Do
    If Teste < BufSize Then
      Tam = Teste
    Else
      Tam = BufSize
    End If
    Buff = String(Tam, " ")
    Get F1, , Buff
    Put F2, , Buff
    Teste = Fsize - LOF(F2)
    Pgb.Value = (Pgb.Max - Int(Pgb.Max * Teste / Fsize))
    DoEvents
  Loop Until Teste = 0
  Close F1
  Close F2
  CopiarArquivo = Fsize
  'Pgb.Value = 0
  Exit Function
fileErro:
    stMsg = "Não foi possivel concluir a copia do arquivo " _
    & Origem & Chr(13) & Chr(13) & "Verifique o seguinte Erro: " _
    & Err.number & " " & Err.Description
  MsgBox stMsg, vbCritical, "Erro ao copiar arquivo."
  Msg = "Erro -> " & Err.Description
    MsgBox Msg
    fcWriteLog (Msg)
  Close F1
  Close F2
End Function

DirceuEmoções
   
A
não registrado
ENUNCIADA !
Postada em 30/01/2007 19:43 hs   
A
   
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 31/01/2007 10:17 hs            
Tentei uma vez e deu certo qdo criei um *.bat, veja ae:
 
Private Sub CommandButton1_Click()
Dim f As Long
Dim sTexto As String
f = FreeFile
 
Open "D:ARQTESTE.BAT" For Output As #f
sTexto = "copy arquivo.txt arquivo2.txt"
Print #f, sTexto
Close #f
Shell "D:ARQTESTE.BAT"
kill "D:ARQTESTE.BAT"
End Sub
at+
   
oi
não registrado
ENUNCIADA !
Postada em 08/11/2010 17:17 hs   
por favor passem um código em BAT pra forçar a cópia! obrigado
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página