Jak flushować pliki INI

Jakiś czas temu próbowałem tworzyć kopię zapasową pliku INI, który właśnie został zaktualizowany 2 linijki kodu wyżej i czego bym nie zrobił, wykonanie kopii zapasowej nigdy nie udawało się (plik nie zawierał wcześniej wprowadzonych zmian).

Próbowałem nawet jakichś dziwnych sposobów z użyciem funkcji Sleep, ale nic nie dawało rezultatów, ostatecznie z braku dalszych pomysłów (i nie aż tak ważnej roli tego kodu) porzucilem pomysł na wykonywanie tychże kopii zapasowych.

Dzisiaj zupełnie przypadkowo zobaczyłem na jakiejś stronie wywołanie funkcji WritePrivateProfileString z wszystkimi parametrami ustawionymi na NULL i jak się okazało to było to czego kiedyś szukałem – konkretnie powoduje zapisanie zmian wprowadzonych do pliku INI na dysk lub do rejestru (jeśli plik jest mapowany).

Zgodnie z dokumentacją na stronie MSDN, pliki INI są cache’owane, aby zwiększyć wydajność działania systemu operacyjnego.

Morał z tej historii taki, że jak już się czyta dokumentację, to nie należy kończyć na opisie parametrów i zwracanych wartościach 🙂

Dodaj komentarz