{
Copyright © 2017 Малик Разработчик
Это свободная программа: вы можете перераспространять её и/или
изменять её на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она может быть полезна,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЁННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<http://www.gnu.org/licenses/>.
}
{
Следующие платформозависимые типы должны быть
определены перед подключением этого интерфейса:
OSIntfFileOpenID – для идентификации открытого файла
OSIntfFileFindID – для идентификации найденного файла
}
type
OSIntfDateTimeRecord = packed record
year: int;
month: int;
day: int;
reserved: int;
hour: int;
minute: int;
second: int;
millis: int;
end;
OSIntfFileFindInfo = packed record
attributes: int;
creationTime: OSIntfDateTimeRecord;
lastWriteTime: OSIntfDateTimeRecord;
lastAccessTime: OSIntfDateTimeRecord;
size: long;
name: UnicodeString;
findID: OSIntfFileFindID;
end;
const
OSINTF_FILE_ATTR_DIRECTORY = int($0010);
OSINTF_FILE_ATTR_READ_ONLY = int($0001);
OSINTF_FILE_ATTR_HIDDEN = int($0002);
OSINTF_FILE_ATTR_MASK = int($0013);
function osintfGetCurrentUTCOffsetInMillis(): int;
function osintfGetCurrentUTCTime(): OSIntfDateTimeRecord;
function osintfFileNameMaximumLength(): int;
function osintfFileNameCaseSensitive(): boolean;
function osintfFileNameValid(const osFileName: UnicodeString): boolean;
function osintfFileNameToVFS(const osFileName: UnicodeString): UnicodeString;
function osintfFileNameToOS(const vfsFileName: UnicodeString): UnicodeString;
function osintfFileWriteAttributes(const osFileName: UnicodeString; const attributes: int;
const creationTime, lastWriteTime, lastAccessTime: OSIntfDateTimeRecord): boolean;
function osintfFileReadAttributes(const osFileName: UnicodeString; out attributes: int;
out creationTime, lastWriteTime, lastAccessTime: OSIntfDateTimeRecord): boolean;
function osintfFileFindFirst(const osBasePath: UnicodeString;
out findInfo: OSIntfFileFindInfo): boolean;
function osintfFileFindNext(var findInfo: OSIntfFileFindInfo): boolean;
function osintfFileFindClose(var findInfo: OSIntfFileFindInfo): boolean;
function osintfFileMove(const osFileSrcName, osFileDstName: UnicodeString): boolean;
function osintfFileDelete(const osFileName: UnicodeString): boolean;
function osintfDirectoryCreate(const osDirName: UnicodeString): boolean;
function osintfDirectoryDelete(const osDirName: UnicodeString): boolean;
function osintfFileCreate(const osFileName: UnicodeString;
out fileID: OSIntfFileOpenID): boolean;
function osintfFileOpenForReadOnly(const osFileName: UnicodeString;
out fileID: OSIntfFileOpenID): boolean;
function osintfFileOpenForReadWrite(const osFileName: UnicodeString;
out fileID: OSIntfFileOpenID): boolean;
function osintfFileOpenForAppending(const osFileName: UnicodeString;
out fileID: OSIntfFileOpenID): boolean;
function osintfFileClose(var fileID: OSIntfFileOpenID): boolean;
function osintfFileSetSize(const fileID: OSIntfFileOpenID): boolean;
function osintfFileGetSize(const fileID: OSIntfFileOpenID): long;
function osintfFileSetPos(const fileID: OSIntfFileOpenID; pos: long): long;
function osintfFileSeek(const fileID: OSIntfFileOpenID; delta: long): long;
function osintfFileRead(const fileID: OSIntfFileOpenID; dst: byte_ArraySimple; length: int): int;
function osintfFileWrite(const fileID: OSIntfFileOpenID; src: byte_ArraySimple; length: int): int;