serginho450 Postado Julho 7, 2011 Denunciar Share Postado Julho 7, 2011 Olá, estou precisando criar um executável que renomeie arquivos nas pastas de usuários no VB6.Algo como:Private Sub Command3_Click()Dim OldName, NewName, ARQANT, NOVOARQARQANT = Environ("userprofile") & ("\Desktop\teste.txt")NOVOARQ = Environ("userprofile") & ("\Desktop\teste.old")Name ARQANT As NOVOARQEnd SubO problema é que esse não funciona.Alguém pode me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 7, 2011 Denunciar Share Postado Julho 7, 2011 se o arquivo teste.txt existir no desktop, é pra funcionar.se o Environ() estiver com problema pra trazer o caminho certo, tente usar alguma das funcoes q o graymalkin indica nesse tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=70575 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 serginho450 Postado Julho 10, 2011 Autor Denunciar Share Postado Julho 10, 2011 se o arquivo teste.txt existir no desktop, é pra funcionar.se o Environ() estiver com problema pra trazer o caminho certo, tente usar alguma das funcoes q o graymalkin indica nesse tópico: http://scriptbrasil.com.br/forum/index.php?showtopic=70575Obrigado pela sua resposta.Bom o arquivo teste.txt está na DesktopPara saber se o Environ() estava funcionando,fiz o seguinte teste:Private Sub Command3_Click()Dim OldName, NewName, ARQANT, NOVOARQARQANT = Environ("userprofile") & ("\Desktop\teste.txt")NOVOARQ = Environ("userprofile") & ("\Desktop\teste.old")text1 = ARQANTtext2 = NOVOARQEnd SubEle me retornou exatamente os valores text1 = c:\users\sergio\Desktop\teste.txt text2 = c:\users\sergio\Desktop\teste.oldCom isso acredito que o Environ() funciona, deve ser alguma coisa com a última linha (name).Ou se você tiver uma outra forma que funcione eu vou ficar agradecido se você postar aqui. Obrigado. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Julho 10, 2011 Denunciar Share Postado Julho 10, 2011 (editado) Olá Serginho !Seguinte... Algumas observações...da maneira que você declarou as variáveis elas estão automáticamente com o tipo "Variante"...ou seja, você não determinou nenhum "Tipo" para as variáveis, o correto seria setar como "String". Ví também que nos formatos você renomeia de "Texto" (.txt) para um formato que desconheço (.OLD)...Bem, fora as observações fiz um teste aqui e funcionou beleza com diferentes usuários...ficou assim:Private Sub cmd1_Click() Dim Dsk As String, nAnt As String, nNovo As String Dsk = Environ("USERPROFILE") & "\Desktop\" nAnt = Dsk & txt_Antigo.Text nNovo = Dsk & txt_Novo.Text Name nAnt As nNovo MsgBox "Alteração bem sucedida !", vbInformation, "Administrador" End Sub Onde existem 2 caixas de Texto (txt_Antigo e txt_Novo), mais um Botão de comando (cmd1). Criei um arquivo com o nome "Teste.txt" no Desktop e com a aplicação rodando, coloquei o nome na primeira caixa...detalhe, coloquei o nome completo,ou seja, com o formato = "Teste.txt" Na segunda caixa coloquei o nome para renomear...também com o formato = "Novo Teste.txt" E cliquei no botão...BINGO !!! nome alterado com sucesso ! Adapte ao seu código o exemplo acima e veja se funciona aí também, beleza ?!FUIII !!! Editado Julho 10, 2011 por Danleonhart Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 serginho450 Postado Julho 10, 2011 Autor Denunciar Share Postado Julho 10, 2011 Olá Serginho !Seguinte... Algumas observações...da maneira que você declarou as variáveis elas estão automáticamente com o tipo "Variante"...ou seja, você não determinou nenhum "Tipo" para as variáveis, o correto seria setar como "String". Ví também que nos formatos você renomeia de "Texto" (.txt) para um formato que desconheço (.OLD)...Bem, fora as observações fiz um teste aqui e funcionou beleza com diferentes usuários...ficou assim:Private Sub cmd1_Click() Dim Dsk As String, nAnt As String, nNovo As String Dsk = Environ("USERPROFILE") & "\Desktop\" nAnt = Dsk & txt_Antigo.Text nNovo = Dsk & txt_Novo.Text Name nAnt As nNovo MsgBox "Alteração bem sucedida !", vbInformation, "Administrador" End Sub Onde existem 2 caixas de Texto (txt_Antigo e txt_Novo), mais um Botão de comando (cmd1). Criei um arquivo com o nome "Teste.txt" no Desktop e com a aplicação rodando, coloquei o nome na primeira caixa...detalhe, coloquei o nome completo,ou seja, com o formato = "Teste.txt" Na segunda caixa coloquei o nome para renomear...também com o formato = "Novo Teste.txt" E cliquei no botão...BINGO !!! nome alterado com sucesso ! Adapte ao seu código o exemplo acima e veja se funciona aí também, beleza ?!FUIII !!! Ô meu amigo eu agradeço muito seu esforço.Dessa vez eu dei um CTRL+C e CTRL+V no seu código e fiz todas as text e commands necessários. na hora de executar o código, coloquei o nome original do arquivo na t_Antigo.Text e o novo nome na txt_Novo.Text como manda seu código e pra mim continua retornando o mesmo erro: Run-time error '53': File not founde quando clico em debug ele destaca justamente a linha Name nAnt As nNovo.O caso é que eu tenho certeza que o arquivo está lá.Será que é meu sistema operacional? Estou usando o win7 Ult. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Julho 10, 2011 Denunciar Share Postado Julho 10, 2011 (editado) continua retornando o mesmo erro: Run-time error '53': File not foundesse erro estava acontecendo no primeiro codigo tb?? você tem mesmo certeza q esse arquivo c:\users\sergio\Desktop\teste.txt existe nesse caminho mesmo??tente pegar esse valor retornado pelo Environ("userprofile") & ("\Desktop\teste.txt") e digite na barra de enderecos do explorer pra ver se o windows encontra.ou passe-o pra funcao Dir() no visual basic, pra ver se tem algum retorno.ou talvez o arquivo esteja no Desktop de All Users e não no desse usuarios especifico. Editado Julho 10, 2011 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Danleonhart Postado Julho 11, 2011 Denunciar Share Postado Julho 11, 2011 (editado) Cara...testei no Win7 Ultimate e foi de boa...concordo com o Kuroi, será se realmente este arquivo está em seu usuário ou no Desktop de "All Users" ???Outra possibilidade...o formato do arquivo é realmente txt ??? foi você mesmo que criou ??? só para lembrar...outro dia teclando com um amigo, ele estava querendo "excluir" um arquivo no formato ".log", só que ele colocava ".txt"... aí não dá... :DSeguinte...Criei um aplicativo aqui para renomear...ele abre a busca no Desktop...testa aí no seu PC...download: AppRenamer Editado Julho 11, 2011 por Danleonhart Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 serginho450 Postado Julho 11, 2011 Autor Denunciar Share Postado Julho 11, 2011 Caras, eu vascilei...Não estou acreditando até agora.O problema é que logo após ter formatado esta máquina que estou usando o vb eu havia mudado o local das pastas de usuários para a D: no registro do win. Isso já alguns meses. Quando vocês argumentaram sobre a localização do arquivo executei um . (ponto final) e ele realmente me levou para minha pasta de usuário real. Justo a que NÃO TEM O ARQUIVO!!! Criei um neste local e bingo. O código funciona. Pesso mil desculpas pelo vascilo que eu dei.Agora, isso que vou escrever aqui não é puxasaquismo não, mas vocês são feras. Acho que eu nunca tive uma ajuda tão eficaz igual a de vocês. Brigadão mesmo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
serginho450
Olá, estou precisando criar um executável que renomeie arquivos nas pastas de usuários no VB6.
Algo como:
Private Sub Command3_Click()
Dim OldName, NewName, ARQANT, NOVOARQ
ARQANT = Environ("userprofile") & ("\Desktop\teste.txt")
NOVOARQ = Environ("userprofile") & ("\Desktop\teste.old")
Name ARQANT As NOVOARQ
End Sub
O problema é que esse não funciona.
Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
7 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.