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)