Boa tarde Wellington.nogueira,
Realmente fui soberbo e quebrei a cara. Peço perdão por isso.
Ainda bem que a discussão chegou nesse ponto, pois o código que postei é estúpido.
Fiz a alteração que você sugeriu, mas não tive exito.
Quando informo o target como “xml” e o source como “txt” funciona, mas quando coloco o target como “prod” e source como “homo” não funciona.
Ex.: nome do arquivo estab_prod.xml --> deveria mudar para estab_homo.xml, mas continua como prod e retorna false.
O que pode estar errado?
Devo informar a extensão?
package br.inf.gati.file;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
public class RenameFile {
/**
* target - palavra a ser substituida
* source - valor que vai substituir o target
*/
private String target, source, local = null;
private ArrayList<String> lista = new ArrayList<String>();
public RenameFile(String[] args) {
target = args[0];
source = args[1];
local = args[2];
System.out.println("Target: " + target);
System.out.println("Source: " + source);
System.out.println("Local : " + local + "\n\n\n\n");
readFiles();
renameFiles();
}
public RenameFile(String target, String source, String local) {
this.target = target;
this.source = source;
this.local = local;
}
/**
* @param args
* args[0] - target to be replaced
* args[1] - source for new value
* args[2] - local where the replace name file will be executed
*/
public static void main(String[] args) {
new RenameFile(args);
}
public void readFiles() {
if (local == null || local.equalsIgnoreCase("")){
System.err.println("Valor inválido para o parâmetro #3 - Local!!!");
return;
}
if (source == null || source.equalsIgnoreCase("")){
System.err.println("Valor inválido para o parâmetro #2 - Source!!!");
return;
}
if (target == null || target.equalsIgnoreCase("")){
System.err.println("Valor inválido para o parâmetro #1 - Target!!!");
return;
}
File local = new File(this.local);
if (!local.exists()){
System.err.println("O diretório especificado no argumento #3 não existe!!!");
return;
}
for(File file : local.listFiles()){
if (file.getAbsolutePath().contains(target)){
lista.add(file.getAbsolutePath());
}
}
}
public void renameFiles() {
for(String aux : lista){
new File(aux.toString()).renameTo(new File(aux.replaceAll(target, source).toString()));
}
}
}