Создание, удаление и переименование файлов

В этом разделе рассматривается: fd.create, fd.rename, fd.delete, fd.getnumfiles, fd.maxstoredfiles.

Пока не создан хотя бы один файл, ничего полезного с флеш-диском не сделать. Для этого служит метод fd.create. Строка, передаваемая в качестве аргумента, должна содержать имя файла и может также содержать атрибуты. Несколько примеров:

If fd.create("File1.dat R 25-JUL-2008")<>PL_FD_STATUS_OK Then ' <File1.dat> is the file name, <R 25-JUL-2008> -- attributes.
   'some problem
End If
If fd.create("    File2")<>PL_FD_STATUS_OK Then 'no attributes defined for this file. Notice leading spaces -- they will be removed.
   'some problem
End If
If fd.create("Database/users.dat")<>PL_FD_STATUS_OK Then 'and here we emulate a directory
   'some problem
End If
If fd.create("file 3")<>PL_FD_STATUS_OK Then 'if the idea was to create a <file 3> file, then this won't work! "3" will be interpreted as attributes!
   'some problem
End If

Естественно, каждый файл на флеш-диске должен иметь уникальное имя, иначе будет выдан код состояния 5 - PL_FD_STATUS_DUPLICATE_NAME. Каждому существующему файлу всегда выделен как минимум один сектор данных, поэтому при создании нового файла может возникнуть ошибка 7 - PL_FD_STATUS_DATA_FULL. Наконец, общее число файлов на флеш-диске ограничено значением, заданным при форматировании диска. Этот максимум можно проверить через свойство fd.maxstoredfiles (только чтение). При попытке превысить его будет выдан код ошибки 6 - PL_FD_STATUS_FILE_TABLE_FULL. Текущее число файлов можно получить через fd.getnumfiles.

Чтобы удалить файл, используйте метод fd.delete:

If fd.delete("File1.dat")<>PL_FD_STATUS_OK Then
   'some problem
End If
If fd.delete("File2 abc")<>PL_FD_STATUS_OK Then 'the "abc" part will be ignored -- everything after the space is NOT a part of the file name
   'some problem
End If
If fd.delete("   Database/users.dat")<>PL_FD_STATUS_OK Then 'leading spaces will be ignored
   'some problem
End If

Удаляемый файл, разумеется, должен существовать, иначе будет выдан код состояния 9 - PL_FD_STATUS_NOT_FOUND. Файл можно также переименовать методом fd.rename (при этом атрибуты файла сохраняются). Удалять или переименовывать файл, который сейчас открыт, можно.

Методы fd.create, fd.rename и fd.delete изменяют секторы флеш-диска. Для максимальной надёжности вызывайте эти методы в рамках дисковых транзакций.

Исходный материал Tibbo обновлён 28 июля 2022Оригинал на docs.tibbo.com · Сообщить об ошибке