W dniu 2016-08-27 o 12:00, Piotr B. [pb2004] pisze:
PM <pm@xx.xx> wrote:
Czyli że M$ też spartolił własne kopiowanie? :P
Pozatym to nie powinno zależeć od użycia api i tylko system sam powinien
wiedzieć że zapis pliku w całości ma lecieć w wolne miejsce.
Nic nie pisałem o kopiowaniu. Skąd w ogóle taki pomysł? Pisałem o
sytuacji gdy tworzony jest plik 0 bajtów i następnie do tego pliku
dopisywane są dane. W takim wypadku jeśli programista nie ustawi na
O tworzeniu pliku w kawałkach to logiczne, że system nie wie ile będzie
miał wynikowy plik. Ale przy kopiowaniu przez explorator też nie wrzuca
pliku w cały wolny blok, tylko wali od początku dysku, czyli że to nie
api daje w dupę, a jeśli tak to sami nie umieją korzystać z tego co i
Algorytm alokacji bloków w sterowniku ntfs zapewniam Cię że jest dużo
bardziej skomplikowany niż proste:
if(znana_wielkość_pliku == true)
{
znajdź_wolne_miesce(potrzebnaliczbaklastrów);
zapiszplik();
}
else
{
while(pozostałodozapisania > 0)
{
znajdź_dowolne_wolne_miejsce();
zapisano = zapisz_część_pliku();
pozostałodozapisania-=zapisano;
}
}
Dlatego chociaż Eksplorator wykorzystuje odpowiednie api to nie zawsze
plik docelowy jest zapisany w jednym fragmencie chociaż często jest.
Zapewne, dlatego pewnie nie działa za każdym razem i raczej trudno
liczyć że coś się w tej kwestii zmieni.
--
PM
--- news://freenews.netfront.net/ - complaints: news@netfront.net ---
|