none
Verificar se arquivo existe e move-lo para outra pasta RRS feed

  • Pergunta

  • Pessoal

    Estou tentando xriar um script para mover arquivos "*.pdf" para um determinada pasta.

    Até ai eu consegui, porem eu queria verificar se o arquivo existe antes de mover.

    Vejo o codigo se está correto:

    If objFSO.FileExists ("C:\scripts\*.pdf") Then

    objFSO.MoveFile "C:\scripts\*.pdf" , "C:\scripts\" & mt & yy & "\" 

    End If

    Não funciona...

    Se alguem puder me ajudar


    Josafá
    segunda-feira, 25 de outubro de 2010 17:44

Respostas

  • Josafá,

    Caractere curinga (windcards "*","?") não funcionam com este objeto que vc está utilizando.

    Fiz um código parecido, ele lê todos os arquivos e vai movendo um a um os que tiverem a extensão .pdf.

     

    Set fso = CreateObject("Scripting.FileSystemObject")
    
    sFolder = "C:\temp" 
    sFolderDestino = "C:\temp\backup\" 
    
    Set folder = fso.GetFolder(sFolder)
    'Set files = folder.Files  
    
    For each file In folder.Files
    	if fso.GetExtensionName(file.name) = "pdf" then
    		fso.MoveFile file.name ,sFolderDestino
    	end if
    	
    Next
    

    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator terça-feira, 26 de outubro de 2010 19:28
    • Marcado como Resposta Josafá quarta-feira, 27 de outubro de 2010 10:38
    terça-feira, 26 de outubro de 2010 15:17
    Moderador
  • Exemplo com pdf e doc:

     

    if fso.GetExtensionName(file.name) = "pdf" OR fso.GetExtensionName(file.name) = "doc" then

    Acrecentes quantos "OU"s forem necessários.


    Fábio de Paula Junior
    • Marcado como Resposta Josafá quarta-feira, 27 de outubro de 2010 13:12
    quarta-feira, 27 de outubro de 2010 11:13
    Moderador

Todas as Respostas

  • Josafá,

    Caractere curinga (windcards "*","?") não funcionam com este objeto que vc está utilizando.

    Fiz um código parecido, ele lê todos os arquivos e vai movendo um a um os que tiverem a extensão .pdf.

     

    Set fso = CreateObject("Scripting.FileSystemObject")
    
    sFolder = "C:\temp" 
    sFolderDestino = "C:\temp\backup\" 
    
    Set folder = fso.GetFolder(sFolder)
    'Set files = folder.Files  
    
    For each file In folder.Files
    	if fso.GetExtensionName(file.name) = "pdf" then
    		fso.MoveFile file.name ,sFolderDestino
    	end if
    	
    Next
    

    Fábio de Paula Junior
    • Sugerido como Resposta Fábio JrModerator terça-feira, 26 de outubro de 2010 19:28
    • Marcado como Resposta Josafá quarta-feira, 27 de outubro de 2010 10:38
    terça-feira, 26 de outubro de 2010 15:17
    Moderador
  • Muito bom Fabio

    Parabéns pela solução !!

     

    Aproveitando...e se eu  adicionar mais uma extensão, como ficaria ??

     

    Obrigado!!


    Josafá
    quarta-feira, 27 de outubro de 2010 10:44
  • Exemplo com pdf e doc:

     

    if fso.GetExtensionName(file.name) = "pdf" OR fso.GetExtensionName(file.name) = "doc" then

    Acrecentes quantos "OU"s forem necessários.


    Fábio de Paula Junior
    • Marcado como Resposta Josafá quarta-feira, 27 de outubro de 2010 13:12
    quarta-feira, 27 de outubro de 2010 11:13
    Moderador
  • Legal..

    Um detalhe é que só funciona na mina maquina (Win 7).

    No servidor (Win 2003) da problema se coloco a linha :

    FSO.MoveFile file.name , NewFolder

    Só funciona quando coloco FSO.MoveFile "C:\Script\*.pdf" , sFolderDestino

     

    No server 2003 é diferente a execução ??

     

    Valeu


    Josafá
    quarta-feira, 27 de outubro de 2010 11:44
  • Achei o problema...

    Ocorreia porque o script estava em outra pasta que não era a referenciada em "Folder.Files".

    Quando coloco o script na pasta ele roda normal..

     

    Valeu pela ajuda


    Josafá
    quarta-feira, 27 de outubro de 2010 13:11