- iPhone topik
- Android alkalmazások - szoftver kibeszélő topik
- Rendkívüli terméktámogatást ígér a Nothing
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Yettel topik
- Google Pixel topik
- Hivatalos a OnePlus 13 startdátuma
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Android szakmai topik
- Milyen okostelefont vegyek?
Új hozzászólás Aktív témák
-
floatr
veterán
válasz
tothpetya #5230 üzenetére
Ennél lényegesen gyorsabb szvsz intézőben sem lesz, max ha másik file rendszert használsz. Másoláskor csak annyit tehetsz, hogy bejárod a fát. Mozgatáskor van annyi előnyöd, hogy egyazon partícióba nincsen fizikai mozgatás, csak a megfelelő bejegyzés(ek) átírása.
Kis file-ok másolásakor nem az USB3 teljesítménye igazán a szűk keresztmetszet, hanem a filerendszerbeli módosítások okozta pozicionálások. Sokszor a puffert sem olvassa tele az első lépésben sem.
-
Aethelstone
addikt
válasz
tothpetya #5228 üzenetére
Az egy dolog, hogy Te hogyan érzed
Egyrészt nagyban függ a másolás sebessége a fájlok mennyiségétől és méretüktől is. Sok kicsit szart tök lassan másol. Ugye van megnyitási idő, másolási idő, lezárási idő. X fájl esetén ez pontosan Xszer annyi, mint mondjuk 1 fájl esetén.
-
Aethelstone
addikt
válasz
tothpetya #5222 üzenetére
Nos, azt írod, hogy mappaméretet hasonlítasz össze és ha ugyanakkora, akkor nem lép bele. Ez jó, de kevés. Van egy fájlod, amiben ez van: "Jo napot kivanok" és egy másik, amiben ez: "Jo kapot kivakok"
Méretilag koppra egyezik a két fájl, de az egyik más időpontban lett módosítva. Ezért csak a méret nem elég, módosítás dátuma is kell. Ezt a kolléga kódja megcsinálja. Másrészt meg méret meghatározásához úgy is bele kell menned és fel kell olvasnod a benne lévő fájlok metaadatait.
-
Aethelstone
addikt
-
floatr
veterán
válasz
tothpetya #5218 üzenetére
Ilyesmire gondoltam, nem teszteltem:
private static void prepare(File src, File dest, List<File> from, List<File> to) {
File f, d;
for (String p : src.list()) {
f = new File(src, p);
if (f.isDirectory()) {
d = new File(dest, p);
d.mkdir();
prepare(f, d, from, to);
} else {
from.add(f);
to.add(new File(dest, p));
}
}
}
private void copy(List<File> from, List<File> to) {
Iterator<File> itrFrom = from.iterator();
Iterator<File> itrTo = to.iterator();
File ff, ft;
int size = from.size();
for (int i = 0; itrFrom.hasNext() && itrTo.hasNext(); i++) {
ff = itrFrom.next();
ft = itrTo.next();
if (ff.length() != ft.length() || ff.lastModified() < ft.lastModified()) {
Files.copy(ff, ft);
}
// show progress: i/size
}
} -
floatr
veterán
válasz
tothpetya #5215 üzenetére
Amikor egy alkalmazás lekérdezi a könyvtár méretét, akkor vagy shell parancsot használ (ami nem túl hordozható megoldás), vagy szépen végignyálazza rekurzívan a belsejét. A leggyakrabban azt szokták csinálni, hogy a megadott útvonalat első körben beolvassák egy nagy listába, és minden elemhez tárolják a méretét, és az utolsó módosítás dátumát. A könyvtárakat nem is feltétlenül szükséges ebben a listában tárolni, mert az mkdirs rekurzívan létrehozza azokat, vagy esetleg a feltérképezéskor érdemes lehet már eleve létrehozni őket. Aztán második menetben összehasonlítod a méret/dátum értékeket, és ha nem stimmel, akkor másolsz. Akkor már csak a lista elemein kell végigfutni, és tudsz becsülni végrehajtási időt is.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- LENOVO ThinkBook 13s - 13.3" FullHD IPS - i5-10210U - 8GB - 256GB SSD - Win11 - MAGYAR
- Azonnali készpénzes AMD Ryzen 1xxx 2xxx 3xxx 5xxx processzor felvásárlás személyesen / csomagküldés
- BESZÁMÍTÁS! GIGABYTE H77-DS3H H77 chipset alaplap garanciával hibátlan működéssel
- BESZÁMÍTÁS! Gigabyte B550M R7 5700X 32GB DDR4 512GB SSD RX 7700 XT 12GB DeepCool CC560 Seasonic 650W
- BESZÁMÍTÁS! Samsung Odyssey G5 32 144Hz WQHD 1ms monitor garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest