Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Karma
    félisten

    Sziasztok!

    Van egy Java függvényem, aminek annyi a lényege, hogy megadunk egy forrás-, és egy célmappát. Majd végigmegy egyesével rekurzívan és átmásolja a még nem nem átmásolt fájlokat:

    //másolás függvény:
    public void masolasFGV(File src, File dest)
    throws IOException {
    //Meg vizsgáljuk, hogy mappa-e:
    if (src.isDirectory()) {
    //Megpróbáljuk létrehozni a mappát (ha van, akkor nem csinál semmit)
    dest.mkdir();
    //Listába rendezzük a mappa tartalmát:
    String files[] = src.list();
    //Majd egyesével végigmegyünk rajta:
    for (String file : files) {
    //Elkészítjük a fájlokat:
    srcFile = new File(src, file);
    destFile = new File(dest, file);
    //Rekurzív másolás:
    masolasFGV(srcFile, destFile);
    }
    } else {
    // Ha a cél nem létezik, másolunk:
    if (!dest.exists()) {
    Files.copy(src.toPath(), dest.toPath());
    System.out.println("Másolás: " + src);
    } else {
    System.out.println("Van már: " + src);
    }
    }
    }

    Ez szép is meg jó is. Viszont szeretnék rajta egy kicsit módosítani. Tök sok olyan van, hogy egy mappában van még egy csomó mappa, meg fájl és ezek már meg vannak és felesleges újra "megvizsgálni" őket. Ezért egyszerűbb lenne: Megadjuk a forrásmappát és a célmappát. Ellenőrzi az utolsó módosítás dátumát (.lastModified()), ha nagyobb (azaz újabb), mint az utolsó mentés dátuma akkor belemegy és végig megy rajta ugyanúgy, mint a fenti példában. Viszont ellenkező esetben az egészet kihagyja. Valakinek ötlet?

    Ezt a kiegészítő ötletedet szerintem ne erőltesd annyira, mert bár tényleg jó ötlet, nem üzembiztos. Nem minden fájlrendszer jegyzi fel a tartalmazó mappákon a módosítási időt, amikor alatta egy fájl változik.

  • Aethelstone
    addikt

    Sziasztok!

    Van egy Java függvényem, aminek annyi a lényege, hogy megadunk egy forrás-, és egy célmappát. Majd végigmegy egyesével rekurzívan és átmásolja a még nem nem átmásolt fájlokat:

    //másolás függvény:
    public void masolasFGV(File src, File dest)
    throws IOException {
    //Meg vizsgáljuk, hogy mappa-e:
    if (src.isDirectory()) {
    //Megpróbáljuk létrehozni a mappát (ha van, akkor nem csinál semmit)
    dest.mkdir();
    //Listába rendezzük a mappa tartalmát:
    String files[] = src.list();
    //Majd egyesével végigmegyünk rajta:
    for (String file : files) {
    //Elkészítjük a fájlokat:
    srcFile = new File(src, file);
    destFile = new File(dest, file);
    //Rekurzív másolás:
    masolasFGV(srcFile, destFile);
    }
    } else {
    // Ha a cél nem létezik, másolunk:
    if (!dest.exists()) {
    Files.copy(src.toPath(), dest.toPath());
    System.out.println("Másolás: " + src);
    } else {
    System.out.println("Van már: " + src);
    }
    }
    }

    Ez szép is meg jó is. Viszont szeretnék rajta egy kicsit módosítani. Tök sok olyan van, hogy egy mappában van még egy csomó mappa, meg fájl és ezek már meg vannak és felesleges újra "megvizsgálni" őket. Ezért egyszerűbb lenne: Megadjuk a forrásmappát és a célmappát. Ellenőrzi az utolsó módosítás dátumát (.lastModified()), ha nagyobb (azaz újabb), mint az utolsó mentés dátuma akkor belemegy és végig megy rajta ugyanúgy, mint a fenti példában. Viszont ellenkező esetben az egészet kihagyja. Valakinek ötlet?

    Hali.

    Ez már korábban is felmerült, mint kérdés.....ha jól emléxem....nem?

Új hozzászólás Aktív témák