windows - Hvordan afkortes en fil i Visual C ++?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har følgende sag. Jeg har en stor fil, siger 1 KB. Jeg vil læse de første 100 bytes og derefter slette 100 bytes læse data fra filen og derefter læse næste 100 bytes. At læse 100 bytes er ok, men hvordan sletter jeg 100 bytes fra filen?

Bedste reference


Dette gøres almindeligvis som en proces med flere trin:



  1. Omdøb den oprindelige fil.

  2. Skriv de data, du vil have, til en ny fil med det originale filnavn.

  3. Slet den gamle fil med det midlertidige navn, der indeholder de data, du ikke længere vil have.



På den måde, hvis noget skulle gå galt, kunne du bare gendanne den oprindelige fil, som du omdøbte. Flytning af en fil fra et sted til et andet er implementeret på denne måde.




Men hvis du ikke vil gøre dette, er funktionen SetEndOfFile en anden levedygtig mulighed for at afkorte indholdet af en fil på stedet. Fra dokumentationen: [3]



  Indstiller den fysiske filstørrelse for den angivne fil til den aktuelle position af filpegeren.

  
  Den fysiske filstørrelse kaldes også slutningen af ​​filen. Funktionen SetEndOfFile kan bruges til at afkorte eller udvide en fil.


Andre referencer 1


Det ville ikke blive kaldt trunkerende ; dette udtryk refererer til fjernelse af data fra slutningen, ikke begyndelsen. Jeg er ikke bekendt med operativsystem, hvor dette er muligt, undtagen ved at kopiere indholdet af filen til en ny fil, startende ved den 100. byte.

Andre referencer 2


Sletning af data, der er blevet behandlet i en fil, er tidskrævende og i de fleste tilfælde ikke nødvendigt.


Hvis du sletter data nær toppen eller midten af ​​filen, skal du skrive en ny fil, der tager tid og diskplads. De fleste applikationer vil læse og behandle hele filen og derefter omdøbe filen (med en backup-udvidelse). Dette er nyttigt til fejlfinding. Sletning af en hel fil er ofte en hurtigere drift, der skriver en ny fil uden behandlede data.


Sletninger bør kun finde sted, når det er nødvendigt. For filer kan man gemme en forskydning af hvor de gyldige data begynder, hvilket reducerer behovet for at slette data fra en fil. For sikre formål er overskrivning af data i filen ofte hurtigere end oprettelse af en ny fil uden de behandlede data.


Prøv først at skrive dit program for ikke at slette data i filen. Slet kun efter behov, efter at programmet er robust og fungerer korrekt. Mange mennesker vil foreslå kun at slette filer, når der ikke er mere plads på drevet.