Soberano Postado Novembro 23, 2008 Denunciar Share Postado Novembro 23, 2008 (editado) 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 Novembro 23, 2008 por Soberano Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Novembro 24, 2008 Denunciar Share Postado Novembro 24, 2008 No VB a função é "FileCopy"...Exemplo:FileCopy("C:\arquivo1.txt", "C:\arquivo2.txt")Qualquer coisa, posta aí ! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Soberano Postado Novembro 24, 2008 Autor Denunciar Share Postado Novembro 24, 2008 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 perguntapara outros membros tambémAté mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 25, 2008 Denunciar Share Postado Novembro 25, 2008 é 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Soberano Postado Novembro 25, 2008 Autor Denunciar Share Postado Novembro 25, 2008 é 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 FrameworkOcorreu 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 25, 2008 Denunciar Share Postado Novembro 25, 2008 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 caminhoElse 'Existe, então copiaEnd If[/code]no .net o parametro vbDirectory seria FileAttribute.Directorye note q se você puser "C:\Caminho\" com o \ no final não vai funcionar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Soberano~ Postado Novembro 26, 2008 Denunciar Share Postado Novembro 26, 2008 (editado) 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 aquiPor isso gostaria de saber qual a melhor maneira de arrumar isso, seria baixardiretamente em vez de criar um arquivo antes... Como poderia fazer?Thanks,Até mais Editado Novembro 26, 2008 por Soberano~ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 27, 2008 Denunciar Share Postado Novembro 27, 2008 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?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Soberano~ Postado Novembro 27, 2008 Denunciar Share Postado Novembro 27, 2008 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 originalmais 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 diferentesSendo assim em vez de baixar do servidor o arquivo já atualizado, iria criar um arquivo velho para ser atualizadoProcurei algumas funções aqui de download e não deu muito certo,Vou fazer uma nova procura, mais se poder me ajudar nissoAté mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Novembro 28, 2008 Denunciar Share Postado Novembro 28, 2008 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?? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Soberano~ Postado Novembro 29, 2008 Denunciar Share Postado Novembro 29, 2008 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 relacionadoa 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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 adelmomelo Postado Junho 26, 2018 Denunciar Share Postado Junho 26, 2018 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Soberano
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:
Mais no visual basic como seria?
Até mais
Editado por SoberanoLink para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
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.