if (!FileExists(FileName))
FileClose(FileCreate(FileName));
Создание и открытие файла
Я создаю текстовый файл функцией filecreate. Потом открываю его функцией shellexecute, но почему-то открывается новый файл "Без имени". Хотя созданный файл уже существует. И нормально открываться он начинает только после перезагрузки программы. Может кто знает в чём дело?
Цитата:
Originally posted by Saris
Я создаю текстовый файл функцией filecreate.
Я создаю текстовый файл функцией filecreate.
Функция FileCreate() не создает файл, она открывает его для записи. Чтобы пользоваться этим файлом (т.е. чтобы он был СОЗДАН на диске), нужно его закрыть функцией FileClose().
Вот этот код создает пустой файл:
Код:
P.S. Функция FileCreate() создает запись в директории о том, что такой-то файл какбы существует, но его размер - 0 байт. На самом деле, там еще пишется ссылка на первый кластер файла. Для не закрытых файлов, она равна нулю (т.е. файл физически не существует). Как только файл закрывается, он записывается на диск, ссылка исправляется на правильную, и в FAT помечаются те кластеры, которые занял файл.
Цитата:
Originally posted by SLA
P.S. Функция FileCreate() создает запись в директории о том, что такой-то файл какбы существует, но его размер - 0 байт. На самом деле, там еще пишется ссылка на первый кластер файла. Для не закрытых файлов, она равна нулю (т.е. файл физически не существует). Как только файл закрывается, он записывается на диск, ссылка исправляется на правильную, и в FAT помечаются те кластеры, которые занял файл.
P.S. Функция FileCreate() создает запись в директории о том, что такой-то файл какбы существует, но его размер - 0 байт. На самом деле, там еще пишется ссылка на первый кластер файла. Для не закрытых файлов, она равна нулю (т.е. файл физически не существует). Как только файл закрывается, он записывается на диск, ссылка исправляется на правильную, и в FAT помечаются те кластеры, которые занял файл.
Спасибо.