6.19. Obcinanie pliku

Problem

Chcemy obciąć plik do zadanej długości, być może zerowej.

Rozwiązanie

Otwarcie pliku w trybie do zapisu powoduje obcięcie go do zerowej długości, po czym można wpisywać do niego nową zawartość:

filename = 'truncate.txt'
open(filename, 'w') { |f| f << "To wszystko zostanie obcięte." }
File.size(filename)                        # => 30

f = open(filename, 'w') {}
File.size(filename)                        # => 0

Obcięcia pliku do zerowej długości można także dokonać, podając jako tryb otwarcia File:TRUNC:

open(filename, 'w') { |f| f << "To jest nowa zawartość." }

File.size(filename)                       # => 27

f = open(filename, File::TRUNC) {}
File.size(filename)                       # => 0

Na pliku otwartym w trybie File::TRUNC nie da się wykonać żadnej operacji:

open(filename, File::TRUNC) ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.