[Ruby] Usuwanie plików w katalogu

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Numb
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 13 sty 2008, 09:00
Środowisko graficzne: Brak
Architektura: x86_64

[Ruby] Usuwanie plików w katalogu

Post autor: Numb »

Witam.

A katalogu mam około 9000 plików bmp, ale niektóre z nich mają rozmiar 321 bajtów. Chcę je usunąć i zostawić pozostałe z innymi rozmiarami.

Do tej pory doszedłem do takiego skryptu:

Kod: Zaznacz cały

i = 0
begin
i += 1
File.delete("#{i}.bmp") if File.size("#{i}.bmp") == 321
end while i < 9000
Usunęło mi wszystkie pliki o rozmiarze 321 bajtów, ale kiedy zmieniłem rozmiar pliku w tym skrypcie, zaczęło mi sypać błędami o file not found. Da się coś z tym zrobić?

Pliki kolejno mają nazwy od 1.bmp do 9000.bmp.
Pozdrawiam,
Numb
Awatar użytkownika
Radarek
Piegowaty Guziec
Piegowaty Guziec
Posty: 9
Rejestracja: 23 kwie 2006, 18:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64
Kontakt:

Odp: [Ruby] Usuwanie plików w katalogu

Post autor: Radarek »

Wiem, że wpis stary, ale ponieważ ktoś mógłby trafić$tutaj to dobrze by było żeby była jakaś odpowiedź.

Błąd pojawia się dlatego, że skasowałeś część plików i wywołanie File.size dla plików który nie istnieje rzuca wyjątkiem. Trzeba po prostu dodać$sprawdzanie na istnienie pliku. Pozwolę sobie dodatkowo zapisać to bardziej "the ruby way".

Kod: Zaznacz cały

(0..9000).each do |i|
  fname = "#{i}.bmp"
  File.delete(fname) if File.exists?(fname) && File.size(fname) == 321
end
http://radarek.jogger.pl Radarek bloguje - mój blog, zapraszam :-)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości