Chcę skopiować pliki z jednego katalogu do drugiego (podkatalogu) za pomocą języka Java. Mam katalog, dir, z plikami tekstowymi. Iteruję po pierwszych 20 plikach w katalogu dir i chcę je skopiować do innego katalogu w katalogu dir, który utworzyłem tuż przed iteracją. W kodzie chcę skopiować review
(który reprezentuje i-ty plik tekstowy lub recenzję) do trainingDir
. W jaki sposób mogę to zrobić? Wydaje się, że nie ma takiej funkcji (lub nie mogłem znaleźć). Dziękuję Ci.
boolean success = false;
File[] reviews = dir.listFiles();
String trainingDir = dir.getAbsolutePath() + "/trainingData";
File trDir = new File(trainingDir);
success = trDir.mkdir();
for(int i = 1; i <= 20; i++) {
File review = reviews[i];
}
Odpowiedzi:
Na razie powinno to rozwiązać Twój problem
FileUtils
class z biblioteki apache commons-io , dostępnej od wersji 1.2.Lepszym pomysłem wydaje się używanie narzędzi innych firm zamiast samodzielnego pisania wszystkich narzędzi. Pozwala zaoszczędzić czas i inne cenne zasoby.
źródło
FileUtils.copyDirectory(source,dest)
sięFileUtils.copyFile(source, dest)
, może to doprowadzić do utworzenia katalogu jeśli nie istniejeW standardowym interfejsie API nie ma (jeszcze) metody kopiowania plików. Twoje opcje to:
źródło
W Java 7, nie jest standardową metodą kopiowania plików w Javie:
Files.copy.
Integruje się z natywnymi wejściami / wyjściami O / S, zapewniając wysoką wydajność.
Widzisz mój A on Standard zwięzły sposób kopiowania pliku w Javie? dla pełnego opisu użytkowania.
źródło
Poniższy przykład z porad dotyczących języka Java jest dość prosty. Od tego czasu przeszedłem na Groovy do operacji związanych z systemem plików - znacznie łatwiejsze i eleganckie. Ale oto wskazówki dotyczące języka Java, z których korzystałem w przeszłości. Brakuje solidnej obsługi wyjątków, która jest wymagana, aby był niezawodny.
źródło
sourceLocation.exists()
sprawyjava.io.FileNotFoundException
Jeśli chcesz skopiować plik i nie przenosić go, możesz kodować w ten sposób.
źródło
Spring Framework ma wiele podobnych klas użytkowych, takich jak Apache Commons Lang. Więc tam jest
org.springframework.util.FileSystemUtils
źródło
apache commons Fileutils jest przydatny. możesz wykonać poniższe czynności.
kopiowanie pliku z jednego katalogu do innego katalogu.
posługiwać się
copyFileToDirectory(File srcFile, File destDir)
kopiowanie katalogu z jednego katalogu do innego katalogu.
posługiwać się
copyDirectory(File srcDir, File destDir)
kopiowanie zawartości jednego pliku do drugiego
posługiwać się
static void copyFile(File srcFile, File destFile)
źródło
źródło
Źródło: https://docs.oracle.com/javase/tutorial/essential/io/copy.html
źródło
Apache commons FileUtils przyda się, jeśli chcesz tylko przenosić pliki ze źródła do katalogu docelowego zamiast kopiować cały katalog, możesz zrobić:
Jeśli chcesz pominąć katalogi, możesz zrobić:
źródło
Wygląda na to, że szukasz prostego rozwiązania (dobrze). Polecam używanie FileUtils.copyDirectory Apache Common :
Twój kod mógłby wyglądać ładnie i prosto, na przykład:
źródło
Zainspirowany odpowiedzią Mohita w tym wątku . Dotyczy tylko środowiska Java 8.
Aby skopiować wszystko rekurencyjnie z jednego folderu do drugiego, można użyć następujących poleceń:
FTW w stylu strumieniowym.
Aktualizacja 2019-06-10: ważna uwaga - zamknij strumień (np. Używając try-with-resource) uzyskany przez wywołanie Files.walk. Dzięki @jannis za punkt.
źródło
Files.walk(source)
zgodnie z zaleceniami w dokumentacji lub możesz mieć kłopotyPoniżej znajduje się zmodyfikowany kod Briana, który kopiuje pliki z lokalizacji źródłowej do lokalizacji docelowej.
źródło
Java 8
Metoda kopiowania
źródło
Możesz obejść ten problem, kopiując plik źródłowy do nowego pliku i usuwając oryginał.
źródło
Posługiwać się
org.apache.commons.io.FileUtils
To takie przydatne
źródło
źródło
Zajęcia NIO sprawiają, że jest to całkiem proste.
http://www.javalobby.org/java/forums/t17036.html
źródło
Używam poniższego kodu do przesłania przesłanego
CommonMultipartFile
do folderu i skopiowania tego pliku do folderu docelowego w folderze projektu webapps (tj.),źródło
Skopiuj plik z jednego katalogu do innego katalogu ...
źródło
tutaj jest po prostu kod java do kopiowania danych z jednego folderu do drugiego, wystarczy podać źródło i miejsce docelowe.
to działający kod na to, co chcesz ... daj mi znać, czy pomogło
źródło
Możesz użyć następującego kodu, aby skopiować pliki z jednego katalogu do innego
źródło
źródło
fileChooser
?następujący kod, aby skopiować pliki z jednego katalogu do drugiego
źródło
źródło
Nawet nie jest to skomplikowane i nie wymaga importu w Javie 7:
renameTo( )
Metoda zmienia nazwę pliku:public boolean renameTo( File destination)
Na przykład, aby zmienić nazwę pliku
src.txt
w bieżącym katalogu roboczym nadst.txt
, należy napisać:Otóż to.
Odniesienie:
Harold, Elliotte Rusty (16.05.2006). Java I / O (s. 393). O'Reilly Media. Wersja Kindle.
źródło
Możesz użyć następującego kodu, aby skopiować pliki z jednego katalogu do innego
źródło
Po funkcji rekurencyjnej napisałem, czy to komuś pomaga. Skopiuje wszystkie pliki z katalogu źródłowego do katalogu docelowego.
przykład:
rfunction("D:/MyDirectory", "D:/MyDirectoryNew", "D:/MyDirectory");
źródło
Jeśli nie chcesz korzystać z bibliotek zewnętrznych i chcesz użyć java.io zamiast klas java.nio, możesz użyć tej zwięzłej metody, aby skopiować folder i całą jego zawartość:
źródło
Według mojej wiedzy najlepszy sposób jest następujący:
źródło