/ / Преместването на файлове не работи в java [дублиране] - java

Преместването на файлове не работи в Java [duplicate] - java

Аз се опитвам в цикъл да премествам файловете, след като те са заредени и обработени ... когато тествам движещата се част на файла, тя работи, но когато го направя, не работи.

Bellow работи добре, но и премества директории, но искам само да бъде преместен.

public class moveFiles {

public static void main(String[] args) {
String getFilesFrom = "D:\show\from";
String destDir = "D:\show\to\";

File srcFile = new File(getFilesFrom);

srcFile.renameTo(new File(destDir, srcFile.getName()));

}

}

Кодът, който имам, който не работи движещата се част, е долу.

for (File child : file.listFiles()) {
if(extensionFilter.accept(child)) {
fr = new FileReader(child);
cm.copyIn("COPY ct"+addExtraZero+month+" FROM STDIN WITH DELIMITER "," csv", fr);
} else {
System.out.println("No File is elgible to be loaded");
break;
}
getNumberOfFilesProcessed++;
System.out.println("Loading now " + child.getName());
child.renameTo(new File(moveFilesTo, child.getName()));
}
System.out.println("Number of files Loaded is: " + getNumberOfFilesProcessed);

Горният код е:

  • получаване на файлове от изходната директория,
  • е зареден в базата данни
  • името на печатните файлове, което се зарежда
  • получите броя на заредените файлове

всичко това работи, но последната част, която е да се преместят файлове в друга директория след зареждане не работи по-долу е частта от файловете, които предполагат, че ще премести файла на цикъла.

child.renameTo(new File(moveFilesTo, child.getName()));

почесване главите ми в продължение на два часа всяка помощ ще бъде оценена.

Отговори:

1 за отговор № 1

от описание на File.renameTo () (акцентът ми):

Операцията за преименуване може да не е в състояние да премести файл от един файловата система към друга, може да не е атомна, а може и да не бъде успее, ако вече има файл с анотация на пътя съществува. Връщаната стойност трябва винаги да се проверява за да се уверите операцията за преименуване беше успешна

Добави:

if( !child.renameTo(new File(moveFilesTo, child.getName())) )
System.out.println("Could not move file");

Или опитайте да използвате move(Path, Path, CopyOption...) метод, тъй като това има повече опции (използване File.toPath()).