Аз се опитвам в цикъл да премествам файловете, след като те са заредени и обработени ... когато тествам движещата се част на файла, тя работи, но когато го направя, не работи.
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()
).