serginho450 Posted July 7, 2011 Report Share Posted July 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? Quote Link to comment Share on other sites More sharing options...
0 kuroi Posted July 7, 2011 Report Share Posted July 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 Quote Link to comment Share on other sites More sharing options...
0 serginho450 Posted July 10, 2011 Author Report Share Posted July 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. Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted July 10, 2011 Report Share Posted July 10, 2011 (edited) 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 !!! Edited July 10, 2011 by Danleonhart Quote Link to comment Share on other sites More sharing options...
0 serginho450 Posted July 10, 2011 Author Report Share Posted July 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. Quote Link to comment Share on other sites More sharing options...
0 kuroi Posted July 10, 2011 Report Share Posted July 10, 2011 (edited) 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. Edited July 10, 2011 by kuroi Quote Link to comment Share on other sites More sharing options...
0 Danleonhart Posted July 11, 2011 Report Share Posted July 11, 2011 (edited) 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 Edited July 11, 2011 by Danleonhart Quote Link to comment Share on other sites More sharing options...
0 serginho450 Posted July 11, 2011 Author Report Share Posted July 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. Quote Link to comment Share on other sites More sharing options...
Question
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 to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.