Program sprawdzający plik a dysk

Program sprawdzający plik a dysk
BE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 39
0

Witam!
Chciałbym napisać program, który co 1 sekunde sprawdza plik, czy występuje w nim więcej niż 100 razy powtarzająca się fraza. Jeśli tak, to usuwa wszystkie linie w pliku.

Mam takie pytanie, czy taki program może być szkodliwy dla dysku, jesli byłby odpalony 24godziny na dobę 7 dni w tygodniu?

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
2

Nie - dyski nie są aż tak delikatne/zawodne;

Zwróć uwagę na to, że serwery też posiadają dyski, które mielą na okrągło latami i nic im nie jest; Każdy dysk ma swoją żywotność, jednak to co potrzebujesz raczej zbytnio go nie obciąży, więc nie ma powodu do obaw;

PS: Poza tym, ten plik i tak wyląduje w cache'u, jeśli tak często będzie używany.

abrakadaber
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6610
5

jeśli to windows i dysk lokalny to lepiej zamiast pytać co chwilę o zawartość podpiąć się pod zdarzenie https://msdn.microsoft.com/en-us/library/windows/desktop/aa365261(v=vs.85).aspx i po prostu czekać aż coś się zmieni z plikiem i wtedy sprawdzać

  • Rejestracja: dni
  • Ostatnio: dni
0

Można też pominąć sprawdzanie jeżeli data modyfikacji i rozmiar pliku nie uległa zmianie od ostatniego sprawdzania.

MY
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1107
0
Złoty Terrorysta napisał(a):

Można też pominąć sprawdzanie jeżeli data modyfikacji i rozmiar pliku nie uległa zmianie od ostatniego sprawdzania.
Rozwiązanie słabe, ponieważ datę modyfikacji można dowolnie zmieniać, sam rozmiar też może być taki sam, a treść zupełnie inna. Już lepiej by było przeliczyć jakiś hash np. MD5 z całego pliku. Ale to ma wtedy znaczenie jeśli przeliczenie skrótu będzie trwało o wiele szybciej niż wykonanie właściwej operacji.

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12269
0

Najlepsze rozwiązanie podał @abrakadaber, więc nie ma sensu kombinować inaczej; Może nie jest takie proste w implementacji jak użycie np. TTimer i własnego kodu sprawdzającego, ale przynajmniej natywne dla systemu i dość szeroko stosowane.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.