Ir para conteúdo
Fórum Script Brasil
  • 0

Copiar Arquivo


Soberano

Pergunta

Boas,

Estou tentando aprender um pouco de visual basic e nisso venho com dúvidas...

Como faço para copiar um arquivo para outro local usando a variavel de ambiente ('Arquivos de programas')

Por exemplo no delphi ficaria assim:

copyfile(pchar(getenvironmentVariable('PROGRAMFILES')+'\pasta1\arquivo.txt'),
pchar(GetenvironmentVariable('PROGRAMFILES')+'\pasta2\pasta3\arquivo.txt'),true);

Mais no visual basic como seria?

Até mais

Editado por Soberano
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
No VB a função é "FileCopy"...

Exemplo:

FileCopy("C:\arquivo1.txt", "C:\arquivo2.txt")

Qualquer coisa, posta aí !

Eai amigo beleza!

Valeu pela força, mais sabe me dizer como pegar o ambiente;

em vez de eu colocar "C:\

pegar o ambiente "PROGRAMFILES" etc...

Vou tentar fazer igual fis no delphi, mais já deixo essa pergunta

para outros membros também

Até mais

Link para o comentário
Compartilhar em outros sites

  • 0

é a funcao Environ(). exemplo:

MsgBox Environ("PROGRAMFILES")

e so pra comentar aqui já q é interessante de saber, as funcoes SHGetSpecialFolderLocation, GetSystemDirectory e GetWindowsDirectory da API Win32 servem tb justamente pra encontrar pastas do sistema, endereco de unidades e etc.

Link para o comentário
Compartilhar em outros sites

  • 0
é a funcao Environ(). exemplo:

MsgBox Environ("PROGRAMFILES")
e so pra comentar aqui já q é interessante de saber, as funcoes SHGetSpecialFolderLocation, GetSystemDirectory e GetWindowsDirectory da API Win32 servem tb justamente pra encontrar pastas do sistema, endereco de unidades e etc.
Valeu amigo, Funcionou... Porém é nessas horas que vemos as diferenças nas linguagens No delphi por exemplo quando eu copio um arquivo de uma pasta para outra pasta que não existe ele não volta error nenhum, somente não copia; Agora no VB pelo que pude observar... Gera um error exemplo:
FileCopy(Environ("PROGRAMFILES") & "\audio\lista.txt", Environ("PROGRAMFILES") & "\audio\pasta\lista.txt")

Caso não exista está 'pasta' para destino, gera um error quando executa,

Não tem como deixar este error hide? se não tiver a pasta não precisa copiar po!

Mensagem de error:

Microsoft. NET Framework

Ocorreu uma exeção não tratada no aplicativo. Se você clicar em Continuar, o aplicativo ignorará esse erro e tentará continuar.

Se clicar em Encerrar, o aplicativo será encerrado imediatamente.

" não foi possível localizar uma parte do caminho 'C:\arquivos de programas\audio\pasta\lista.txt"

Continuar/Encerrar

E agora?

até mais

Link para o comentário
Compartilhar em outros sites

  • 0

Microsoft .NET Framework??

aaa isso ai é visual basic .net, essa sala aqui é so pra visual basic 6.

por acaso essa sua duvida se faz da mesma forma nas duas linguagens, já q a sintaxe e a maioria das funcoes são iguais, mas são linguagens diferentes, todos os objetos usados são diferentes.

é bom postar suas proximas duvidas na sala de .net.

Caso não exista está 'pasta' para destino, gera um error quando executa,

Não tem como deixar este error hide? se não tiver a pasta não precisa copiar po!

eu acho mais certo q o compilador retorne o erro. se você tenta copiar e não consegue, você tem q ter um retorno.

pra q você vai copiar pra onde não existe?? o programador q tem q se vira pra isso não acontecer.

pra não dar o erro, você podia escrever On Error Resume Next antes do FileCopy, mas acho q o mais certo seria testar antes se o diretorio existe não??

pra isso você pode usar a funcao Dir(). pelo menos no visual basic 6 eu faria assim:

If Dir("C:\Caminho", vbDirectory) = "" Then
    'Não existe o caminho
Else
    'Existe, então copia
End If[/code]

no .net o parametro vbDirectory seria FileAttribute.Directory

e note q se você puser "C:\Caminho\" com o \ no final não vai funcionar.

Link para o comentário
Compartilhar em outros sites

  • 0

beleza, Essa função de verificar se o caminho existe deu certo, assim não retorna nenhum error,

Mais mesmo aqui sendo .NET vamos continuar neste tópico pois tenho mais uma dúvida...

If Dir(Environ("PROGRAMFILES") & "\audio\teste.txt", vbDirectory) = "" Then
            'Verifica se existe o caminho
        Else
            'Existe, deleta
            Kill(Environ("PROGRAMFILES") & "\audio\teste.txt")
        End If

            'Abaixo criar um arquivo e faz o download em cima
        FileOpen(1, (Environ("PROGRAMFILES") & "\audio\teste.txt"), OpenMode.Append)
        PrintLine(1, GetUrlSource("http://www.servidor.com/teste.txt"))
        FileClose(1)

Minha dúvida agora é na parte de download no code acima,

Da maneira que está escrita, Antes de baixar o arquivo cria-se um arquivo com um determinado hash!

E quando baixa o arquivo linkado, O hash do arquivo não muda...

E esse detalhe é muito importante para o sistema de atualização aqui

Por isso gostaria de saber qual a melhor maneira de arrumar isso, seria baixar

diretamente em vez de criar um arquivo antes... Como poderia fazer?

Thanks,

Até mais

Editado por Soberano~
Link para o comentário
Compartilhar em outros sites

  • 0
não entendi ai o problema.

em q parte do codigo você cria esse hash?? e qual o problema com ele??

como assim não muda?? não muda de onde?? pra q deveria mudar??

Todo arquivo tem um hash! E nessa linha:

FileOpen(1, (Environ("PROGRAMFILES") & "\audio\teste.txt"), OpenMode.Append)
Cria-se esse arquivo com determinado hash deixando aberto, E faz o download do arquivo do servidor:
PrintLine(1, GetUrlSource("http://www.servidor.com/teste.txt"))
FileClose(1)

Mais não é realmente o arquivo do servidor que fica por final no diretório,

Da para ver isso no hash, O arquivo criado contém o mesmo conteúdo do original

mais não é o arquivo original linkado no site;

Nisso corrompe o sistema de atualização pelo motivo de comparar o hash entende?

Digamos que é um arquivo igual com hash diferentes

Sendo assim em vez de baixar do servidor o arquivo já atualizado,

iria criar um arquivo velho para ser atualizado

Procurei algumas funções aqui de download e não deu muito certo,

Vou fazer uma nova procura, mais se poder me ajudar nisso

Até mais

Link para o comentário
Compartilhar em outros sites

  • 0

no visual basic 6 acho q tem um controle chamado INET q você consegue baxar o arquivo da internet. mas acho q não deve funcionar no .net, acho melhor você postar la na sala e perguntar sobre isso.

mas uma duvida... o q é esse sistema de atualizacao q você fala?? por acaso é esse seu programa .net q faz isso?? e onde é q você compara o hash pra saber se o arquivo ta atualizado ou não??

Link para o comentário
Compartilhar em outros sites

  • 0
no visual basic 6 acho q tem um controle chamado INET q você consegue baxar o arquivo da internet. mas acho q não deve funcionar no .net, acho melhor você postar la na sala e perguntar sobre isso.

mas uma duvida... o q é esse sistema de atualizacao q você fala?? por acaso é esse seu programa .net q faz isso?? e onde é q você compara o hash pra saber se o arquivo ta atualizado ou não??

Não isso é em delphi, Mais para comparar o hash é só procurar no google algo relacionado

a checksum que irá achar vários programas que possibilita checar a integridade do arquivo!

E sobre o download consegui usando esse comando:

My.Computer.Network.DownloadFile("http://", "C:\")

Desde de já desejo um feliz natal amigo;

Bye!

Link para o comentário
Compartilhar em outros sites

  • 0
Em 24/11/2008 at 15:45, Jonathan Queiroz disse:

No VB a função é "FileCopy"...

Exemplo:

 

 

FileCopy("C:\arquivo1.txt", "C:\arquivo2.txt")

 

 

Qualquer coisa, posta aí !

Utilizava esta função, entretanto, deixou de funcionar mostrando o error: 77/01000. Alguém sabe como resolver?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...