- iPhone topik
- Poco X5 Pro - ránézésre jó
- Szinte játékpénzért megvehető a Honor Play 10C
- Google Pixel topik
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Azonnali navigációs kérdések órája
- Mindenki Z Fold7-et akar
- Sony Xperia 1 VII - Látod-e, esteledik
- Yettel topik
- Android alkalmazások - szoftver kibeszélő topik
Ú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?:))
- HIBÁTLAN iPhone 12 mini 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2036
- Samsung Galaxy A55 5G / 8RAM 256GB / Gyárifüggetlen / 12 Hó Garanciával
- Bomba ár! Dell Latitude E6520 - i5-2GEN I 6GB I 320GB I HDMI I 15,6" HD+ I W10 I Gari!
- Eladó karcmentes Moto G31 4/64GB / 12 hó jótállással
- Xiaomi Redmi Note 10 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest