Para os designers de sites, é inevitável processar grandes quantidades de arquivos de tempos em tempos, especialmente imagens e alguns arquivos de texto, que são processados com frequência. Devido ao grande número de arquivos no site, arquivos do mesmo tipo são frequentemente nomeados usando números crescentes com certas regras. Por exemplo, nossos arquivos de imagem comuns são frequentemente denominados 1001.jpg, 1002. A vantagem do método jpg é que o método jpg. os nomes dos arquivos não serão repetidos e são fáceis de gerenciar. Aqui, apresentamos especificamente um método simples e fácil para renomear em lote todos os arquivos em qualquer pasta. É claro que os nomes dos arquivos após a renomeação são incrementados numericamente de acordo com as necessidades do designer do site.
Usamos ASP para implementar as funções acima. Deve-se observar que como o design envolve operações de arquivo e utiliza o objeto FileSystemObject, a implementação desta função deve ser realizada em um site com permissões de operação de arquivo. Atenção virtual geral: considerando os requisitos de segurança, as permissões de existência de arquivos podem não ser concedidas. Esta é a primeira coisa que precisamos prestar atenção, além disso, no programa a seguir, iremos operar todos os arquivos na pasta especificada strFromDir, desde que; é este arquivo Independentemente do tipo de arquivo, o programa renomeará os arquivos na pasta. Obviamente, o tipo de arquivo não será alterado. Os arquivos renomeados não serão mais salvos na pasta original, mas serão movidos para uma pasta. nova pasta. strTargetDir, observe que estamos movendo aqui, não copiando, portanto, após a operação, todos os arquivos da pasta original não existirão mais, o programa faz bom uso de várias propriedades e recursos fornecidos pelo objeto FileSystemObject, e é; simples de implementar. Obviamente, amigos que programam em outras linguagens podem se sentir profundamente agora, vamos dar uma olhada no código de implementação da função:
<% @LANGUAGE = VBSCRIPT%>;
<%Opção Explícita%>
<%
'O programa a seguir renomeia os arquivos em uma pasta em lotes e move todos os arquivos para uma nova pasta;
Response.Write "<html>" & VbCrLf & "<head>" & VbCrLf
Response.Write "<título>Renomeação do arquivo em lote</título>" & VbCrLf
Resposta.Escreva "</head>" & VbCrLf & "<body>" & VbCrLf
'Descrição da variável
Dim gbolGoProcedure
Dim strFromDir 'Pasta de origem
Dim strTargetDir 'Pasta de destino
Dim objFS
Dim objRootFolder
Escurecer arquivoobj
Dim strFileNameLen
Dim strPrevFileName
Dim strFileExt 'Extensão do arquivo
Dim strFileNameCount
Dim strNovoArquivoNome
Dim strRealCount 'Número de arquivos processados
gbolGoProcedure = False
'Se o botão Iniciar for clicado, execute o seguinte processamento
If (Request.Form("GoButton")) = "Start" then
'Especifique a pasta de origem e a pasta de destino
strFromDir = "D:test"
strTargetDir = "D:test1"
' Define o número de arquivos a serem processados como 0
strRealCount = 0
Set objFS = Server.CreateObject("Scripting.FileSystemObject")
Set objRootFolder = objFS.GetFolder(strTargetDir)
'A configuração específica do nome do arquivo, definida aqui como 100001, indica que o nome do arquivo será alterado de 100001
'Iniciar, aumentar gradualmente e pode ser definido conforme necessário;
strFileNameCount = 100001
Para cada objFile em objRootFolder.Files
'Para arquivos específicos, nenhum processamento será realizado e pode ser definido conforme necessário;
Se objFile.Name = "Thumbs.db" então strFileNameCount = StrFileNameCount - 1
strFileNameCount = strFileNameCount + 1
Próximo
Definir objRootFolder = objFS.GetFolder(strFromDir)
Para cada objFile em objRootFolder.Files
strNomeArquivoLen = Len (objArquivo.Nome)
Se Mid (objFile.Name,(strFileNameLen - 3),1) = "."
strFileExt = direita(objArquivo.Nome, 4)
Outro
strFileExt = direita(objArquivo.Nome, 5)
Fim se
strPrevFileName = objFile.Name
strNewFileName = strFileNameCount & strFileExt
objFile.Move strTargetDir & strNewFileName
Response.Write "Arquivo de origem: " &strFromDir&strPrevFileName & " > Mover e renomear: " &strTargetDir& strNewFileName & "<br>" & vbCrLF
strFileNameCount = strFileNameCount + 1
strRealCount = strRealCount + 1
Próxima
resposta.Write "<p><b> Processado no total: " & (strRealCount) & " files</B>" & vbCrLf
Set objRootFolder = Nothing
Definir objFS = Nada
gbolGoProcedure = True
End If
If gbolGoProcedure Then
Response.Write("<p><b>Movimentação e renomeação de arquivo em lote</b>") & vbCrLf
Else
Response.Write("<center><br><form method=""post"" action=""FileNameConverter.asp"" ID=form1 name=""form1"">") & vbCrLf
Response.Write("<input type=""ENVIAR"" valor="" Iniciar"" ID=""GoButton"" name=""GoButton"">") & vbCrLf
Response.Write("</formulário>") & vbCrLf
Response.Write("<p><b>Clique no botão para mover em lote e renomear arquivos</b></center>") & VbCrLf
End If
Response.Write "</body>" & VbCrLf & "</html>"
%>