[ tkaranovic @ 26.03.2015. 09:52 ] @
Kad bi vam neko rekao da bi trebalo da brisete batch fajlmom iz Delphi programa ovako:


del /f/s/q foldername > nul
rmdir /s/q foldername

jer pise na ovom linku:

http://stackoverflow.com/quest...der-in-windows/6208144#6208144

da je to najbrze brisanje. Sta bi mu rekli na to?
[ X Files @ 26.03.2015. 18:08 ] @
Misliš sa stanovišta samo brzine, ili i drugih apekata, kao što su bezbednost, pouzdanost (UAC, AV, Exceptions)?
[ tkaranovic @ 26.03.2015. 18:24 ] @


Da, mislim koliko ima smila pokretati proces koji se ne moze kontrolisati na na jedan nacin?


To naravno, ne vazi samo Za Delphi nego bilo koji drugi nacin pravljenja desktop programa (ili bilo kog programa).
Kada vec moze da se napravi program koji moze da kontrolise ceo proces, cemu prepustati to drugom procesu bez ikakve kontrole?

Meni se cini ocigleno besmisleno, da li gresim?
[ X Files @ 26.03.2015. 18:53 ] @
Ako je stvar u efikasnom brisanju baš, baš velike količine podataka odjednom, verovatno bi trebalo razmisliti o particiji namenjenoj samo tome, pa onda nekakav atak na nju. Naravno, pod uslovom da su ti podaci pod kontrolom softvera.

U par navrata jesam koristio batch skripte, za parsiranje izlazng TXT sadržaja nekog EXE-a, kada nisam imao svoje rešenje.

Što se tiče smisla kod brisanja, imao sam u praksi situacije da nešto što "nije htelo" da se ukloni kroz Windows, a htelo je kroz konzole. Mislim da je bilo u vezi sa nekom probolematikom u nazivima ili dužini fajlova/foldera. Skraćena reprezentacija fajlova u konzolnom režimu je ovo bez problema rešavala. Doduše, to je bilo na starijim sistemima, sumnjam da bi danas bilo efekta.

Ja bih izbegavao batch skripte... Pre bih napravio neki background proces, pa koliko traje da traje.
[ savkic @ 27.03.2015. 14:09 ] @
> Kad bi vam neko rekao da bi trebalo da brisete batch fajlmom iz Delphi programa ovako:
> del /f/s/q foldername > nul
> rmdir /s/q foldername
> jer pise na ovom linku:
> http://stackoverflow.com/quest...der-in-windows/6208144#6208144
> da je to najbrze brisanje. Sta bi mu rekli na to?

Da se link/pitanje odnosi na svakodnevni rad i da ne važi za programsko rešenje.
Ako se traži programsko rešenje onda je bolje to ručno uraditi.
Inače ako se briše ceo dir, posebno sa dosta fajlova, ubedljivo najbrzi način je slanje celog u recycle bin, ne brisanje pojedinačnih fajlova pa na kraju brisanje dira.
[ tkaranovic @ 27.03.2015. 16:46 ] @

Da, najbze je u recycle bin.

Samo ako par GB treba obrisati cesto onda treba i recycle bin prazniti.
[ savkic @ 27.03.2015. 17:10 ] @
Brisanje ide sa SHFileOperation, ne secam se da li vraca broj/veličinu obrisanih fajlova. Ako nema tu, treba videti da li se recycle bin može pitati za veličinu obrisanih fajlova.
Ili ako su ti dirovi uglavnom veliki, ubaci uvek poziv i za SHEmptyRecycleBin.
[ tkaranovic @ 30.03.2015. 11:46 ] @
Total File Size: 4.06 GB
Running Recycle Bin deletion...
Total time (h.m.s.ms): 00.00.38.527

Total File Size: 4.06 GB
Running batch script...
Total time (h.m.s.ms): 00.00.10.441

Total File Size: 4.06 GB
Running FindFirst/DeleteFile/RemoveDir deletion...
Total time (h.m.s.ms): 00.00.06.944


Evo kako izgleda testiranje Recycle Bin, batch skript i rekurzija FindFirst/DeleteFile/RemoveDir.
Ovo je 64-bitna aplikacija ali to ne utice na brzinu.
Test je na brzom disku pa zato tako brzo brise. Ne treba ocekivati takvu brzinu na sporijem.


Recycle Bin u ovom slucaju nije koristan uopste jer je previse spor.
Naravno, u ovom slucaju radi sa praznjenjem jer samo tako ima smisao.

Batch script jeste brz kao sto pisu.

FindFirst/DeleteFile/RemoveDir bi bio iste brzine kao Batch da nema jednu caku ubacenu.
To je isto smisao pisanja programa na koji sam mislio na pocetku teme.


Saljem ovde program, da ko hoce moze da proveri rezultate koje sam ispisao.
Ne mogu da posaljem kod jer sam ga pisao za nekog drugog.
Jedino sto mogu da napisem je da, recimo, FindFirst/Next ako se podeli na rekurziju brisanja
fajlova i drugu u kojoj se brisu folderi radi brze i slicno kao batch.
Treba razmislitit zasto je to tako i otici korak dalje pa koristiti samo jednu rekurziju.

Ovo objasnjenje sam napisao ako nekome zaista treba brzo brisanje da moze
da razmisli kako da smisli resenje i sam ga napise.

Hvala ucesnicima ove teme jer je ovako izazov da nadjem bolje resenje bio veci. :)
[ savkic @ 30.03.2015. 11:54 ] @
> Total File Size: 4.06 GB
> Running Recycle Bin deletion...
> Total time (h.m.s.ms): 00.00.38.527

A koliko je samo brisanje (bez praznjenja)?

> Recycle Bin u ovom slucaju nije koristan uopste jer je previse spor.
> Naravno, u ovom slucaju radi sa praznjenjem jer samo tako ima smisao.

A sto ne stavis praznjenje u pomocni thread?
[ tkaranovic @ 30.03.2015. 12:06 ] @

> A koliko je samo brisanje (bez praznjenja)?

Nisam to probao jer se to ne trazi.


> A sto ne stavis praznjenje u pomocni thread?

Takav je zahtev narucioca.


Inace ne mogu da poslajem fajl jer je izgleda malo vezi za ovaj forum a stalno ispisuje:

> Morate izabrati fajl za upload.

Probao sam iz IE i iz FireFoxa.
[ savkic @ 30.03.2015. 12:28 ] @
>> A sto ne stavis praznjenje u pomocni thread?

> Takav je zahtev narucioca.

Ne vidim šta dobija time, ako želi sigurno brisanje (da se fajl ne može povratiti), to se sa običnim deletom ne može postići tako da i RecBin brisanje i pražnjenje u pozadini ne utiče na tačnost metode a treba da se dobije na brzini.

Inače ima i bržih metoda od FindFirst/Next pa eventualno još možeš poboljašti rezultate.

> Inace ne mogu da poslajem fajl jer je izgleda malo vezi za ovaj forum a stalno ispisuje:

Mislim da je ograničenje 1mb.