Функция FileFlush

         Описание функции


FileFlush

Сбрасывает буфер файла на диск.

FileFlush ( "filehandle" )

Параметры

filehandle Дескриптор ранее открытого файла, возвращённый функций FileOpen().

Возвращаемое значение

Успех:Возвращает True, если буфер был сброшен на диск (или не требует сброса).
Ошибка:Возвращает False.

Примечания

При операциях записи в открытый файл используется буфер ввода / вывода размером 128 байт. Данные передаются в буфер и сбрасываются на диск только после заполнения буфера или при закрытии дескриптора функцией FileClose(). Функция FileFlush() предназначена для принудительного сброса данных из буфера, это гарантирует сохранение информации в физический файл. Это актуально при работе с файлами на устройствах, которые могут быть отключены до закрытия дескриптора. Функция может быть использована только с дескрипторами файлов, возвращёнными функций FileOpen().

См. также

FileClose, FileOpen, FileWrite, FileWriteLine, FileSetPos

Пример

Local $sFile, $hFile, $Before, $After

$sFile = @ScriptDir & "test.txt"
$hFile = FileOpen($sFile, 1)

; Проверяет, является ли файл открытым, перед тем как использовать функции чтения/записи в файл
If $hFile = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

; Записывает некоторый текст в файл.
FileWrite($hFile, "Строка1")

$Before = FileGetSize($sFile)
FileFlush($hFile) ; Сбрасывает буфер файла на диск.
$After = FileGetSize($sFile)

MsgBox(0, 'Сообщение', _
        'Размер файла до и после использования FileFlush' & @LF & _
        @TAB & $Before & ' КБ (до)' & @LF & _
        @TAB & $After & ' КБ (после)')

; Закрывает дескриптор.
FileClose($hFile)

; Удаляет временный файл.
FileDelete($sFile)