Difference between revisions of "Unit Filesystem"

From Ultibo.org
Jump to: navigation, search
Line 1,317: Line 1,317:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function FSSetFileShortNameEx(AHandle:Integer; const AShortName:String):Boolean;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function FSSetFileShortNameEx(AHandle:THandle; const AShortName:String):Boolean;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">

Revision as of 05:05, 21 November 2016

Return to Unit Reference


Description


Numbering of Devices, Partitions, Volumes, Drives etc


Example:


Machine with 2 Floppy drives, 2 Fixed drives


Fixed Drive 1 has 2 Partitions (1 Primary and 1 Extended)

Fixed Drive 2 has 1 Partition (1 Primary)


\Floppy0 = Device 00h / Partition 0

\Floppy1 = Device 01h / Partition 0


\Harddisk0\Partition1 = Device 80h / Partition 1

\Harddisk0\Extended1 = Device 80h / Extended 1

\Harddisk0\Partition2 = Device 80h / Partition 2


\Harddisk1\Partition1 = Device 81h / Partition 1


\Volume1 = \Floppy0

\Volume2 = \Floppy1

\Volume3 = \Harddisk0\Partition1

\Volume4 = \Harddisk1\Partition1

\Volume5 = \Harddisk0\Partition2


A: = \Volume1

B: = \Volume2

C: = \Volume3 (Alternate Name = \HarddiskVolume1)

D: = \Volume4 (Alternate Name = \HarddiskVolume2)

E: = \Volume5 (Alternate Name = \HarddiskVolume3)

Constants


To be documented

Type definitions


To be documented

Public variables


To be documented

Function declarations



Initialization functions

procedure FileSysInit;
Description: To be documented
Note None documented


function FileSysStart:LongWord;
Description: To be documented
Note None documented


function FileSysStop:LongWord;
Description: To be documented
Note None documented


procedure FileSysAsyncStart(Data:Pointer);
Description: To be documented
Note None documented


FileSystem functions (Delphi / FreePascal RTL Equivalent)

Drive functions

function FSGetPathDrive(const APath:String):Byte; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveType(ADrive:Byte):TDriveType; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveData(ADrive:Byte):TDriveData; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveAttr(ADrive:Byte):LongWord; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveLabel(ADrive:Byte):String; inline;
Description: To be documented
Note No Volume Support


function FSSetDriveLabel(ADrive:Byte; const ALabel:String):Boolean; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveSerial(ADrive:Byte):LongWord; inline;
Description: To be documented
Note No Volume Support


function FSSetDriveSerial(ADrive:Byte; ASerial:LongWord):Boolean; inline;
Description: To be documented
Note No Volume Support


function FSIsDriveValid(ADrive:Byte):Boolean; inline;
Description: To be documented
Note No Volume Support


function FSGetValidDrives:LongWord; inline;
Description: To be documented
Note No Volume Support


function FSGetValidDriveNames:TStringList; inline;
Description: To be documented
Note No Volume Support


function FSGetValidDriveStrings:String; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveFreeSpace(ADrive:Byte):LongWord; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveFreeSpaceEx(ADrive:Byte):Int64; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveTotalSpace(ADrive:Byte):LongWord; inline;
Description: To be documented
Note No Volume Support


function FSGetDriveTotalSpaceEx(ADrive:Byte):Int64; inline;
Description: To be documented
Note No Volume Support


function FSGetCurrentDrive:Byte; inline;
Description: To be documented
Note No Volume Support


function FSSetCurrentDrive(const ADrive:String):Boolean; inline;
Description: To be documented
Note No Volume Support


File functions

function FSFileOpen(const AFileName:String; AMode:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileCreate(const AFileName:String):Integer; inline;
Description: To be documented
Note None documented


function FSDeleteFile(const AFileName:String):Boolean; inline;
Description: To be documented
Note None documented


procedure FSFileClose(AHandle:Integer); inline;
Description: To be documented
Note None documented


function FSRenameFile(const AOldName,ANewName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSFileSeek(AHandle,AOffset,AOrigin:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileFlush(AHandle:Integer):Boolean; inline;
Description: To be documented
Note None documented


function FSFileTruncate(AHandle:Integer):Boolean; inline;
Description: To be documented
Note None documented


function FSSetEndOfFile(AHandle:THandle):Boolean; inline;
Description: To be documented
Note None documented


function FSEndOfFile(AHandle:Integer):Boolean; inline;
Description: To be documented
Note None documented


function FSFilePos(AHandle:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileSize(AHandle:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileAge(const AFileName:String):Integer; inline;
Description: To be documented
Note None documented


function FSFileExists(const AFileName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSFileGetAttr(const AFileName:String):Integer; inline;
Description: To be documented
Note None documented


function FSFileGetDate(AHandle:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileSetAttr(const AFileName:String; AAttr:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileSetDate(AHandle:Integer; AAge:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileRead(AHandle:Integer; var ABuffer; ACount:Integer):Integer; inline;
Description: To be documented
Note None documented


function FSFileWrite(AHandle:Integer; const ABuffer; ACount:Integer):Integer; inline;
Description: To be documented
Note None documented


Directory functions

function FSCreateDir(const ADirName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSRemoveDir(const ADirName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSRenameDir(const AOldName,ANewName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSGetCurrentDir:String; inline;
Description: To be documented
Note No Volume Support


function FSSetCurrentDir(const ADirName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSDirectoryExists(const ADirName:String):Boolean; inline;
Description: To be documented
Note None documented


procedure FSForceDirectories(ADirName:String); inline;
Description: To be documented
Note None documented


procedure FSDeleteTree(const ADirName:String); inline;
Description: To be documented
Note None documented


Search functions

function FSFindFirst(const APath:String; AAttr:Integer; var ASearchRec:TSearchRec):Integer; inline;
Description: To be documented
Note None documented


function FSFindNext(var ASearchRec:TSearchRec):Integer; inline;
Description: To be documented
Note None documented


procedure FSFindClose(var ASearchRec:TSearchRec); inline;
Description: To be documented
Note None documented


Additional functions

function FSFileCopy(const ASourceFile,ADestFile:String; AFailIfExists:Boolean):Boolean; inline;
Description: To be documented
Note None documented


function FSFileCopyEx(const ASourceFile,ADestFile:String; AFailIfExists:Boolean; AUseSourceDate:Boolean; ADestDate:Integer; AUseSourceAttr:Boolean; ADestAttr:Integer):Boolean; inline;
Description: To be documented
Note None documented


function FSGetShortName(const AFileName:String):String; inline;
Description: To be documented
Note None documented


function FSGetLongName(const AFileName:String):String; inline;
Description: To be documented
Note None documented


function FSGetTrueName(const AFileName:String):String; inline;
Description: To be documented
Note None documented


Extended functions

function FSFileSeekEx(AHandle:Integer; const AOffset:Int64; AOrigin:Integer):Int64; inline;
Description: To be documented
Note None documented


function FSEndOfFileEx(AHandle:Integer):Boolean; inline;
Description: To be documented
Note None documented


function FSFilePosEx(AHandle:Integer):Int64; inline;
Description: To be documented
Note None documented


function FSFileSizeEx(AHandle:THandle):Int64; inline;
Description: To be documented
Note None documented


function FSFileAgeEx(const AFileName:String):TFileTime; inline;
Description: To be documented
Note None documented


function FSFileGetDateEx(AHandle:Integer):TFileTime; inline;
Description: To be documented
Note None documented


function FSFileSetDateEx(AHandle:Integer; AAge:TFileTime):Integer; inline;
Description: To be documented
Note None documented


function FSGetFileTime(AHandle:THandle; ACreateTime,AAccessTime,AWriteTime:PFileTime):Boolean; inline;
Description: To be documented
Note None documented


function FSSetFileTime(AHandle:THandle; ACreateTime,AAccessTime,AWriteTime:PFileTime):Boolean; inline;
Description: To be documented
Note None documented


function FSFindFirstEx(const APath:String; var ASearchRec:TFileSearchRec):Integer; inline;
Description: To be documented
Note None documented


function FSFindNextEx(var ASearchRec:TFileSearchRec):Integer; inline;
Description: To be documented
Note None documented


procedure FSFindCloseEx(var ASearchRec:TFileSearchRec); inline;
Description: To be documented
Note None documented


FileSystem functions (Win32 Compatibility)

Drive functions

function FSDefineDosDevice(const ADeviceName,ATargetPath:String; AFlags:LongWord):Boolean; inline;
Description: To be documented
Note None documented


function FSGetDiskType(const ARootPath:String):LongWord; inline;
Description: Equivalent to Win32 GetDriveType
Note None documented


function FSGetDiskFreeSpace(const ARootPath:String; var ASectorsPerCluster,ABytesPerSector,ANumberOfFreeClusters,ATotalNumberOfClusters:LongWord):Boolean; inline;
Description: To be documented
Note None documented


function FSGetDiskFreeSpaceEx(const APathName:String; var AFreeBytesAvailableToCaller,ATotalNumberOfBytes,ATotalNumberOfFreeBytes:Int64):Boolean; inline;
Description: To be documented
Note None documented


function FSGetLogicalDrives:LongWord; inline;
Description: To be documented
Note None documented


function FSGetLogicalDriveStrings:String; inline;
Description: To be documented
Note None documented


function FSGetVolumeInformation(const ARootPath:String; var AVolumeName:String; var AVolumeSerialNumber,AMaximumComponentLength,AFileSystemFlags:LongWord; var ASystemName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSQueryDosDevice(const ARootPath:String):String; inline;
Description: To be documented
Note None documented


function FSSetVolumeLabel(const AVolume:String; const ALabel:String):Boolean; inline;
Description: To be documented
Note None documented


File functions

function FSAreFileApisANSI:Boolean; inline;
Description: To be documented
Note None documented


function FSCloseFile(AHandle:THandle):Boolean; inline;
Description: Equivalent to Win32 CloseHandle
Note None documented


function FSCopyFile(const AExistingName,ANewName:String; AFailIfExists:Boolean):Boolean; inline;
Description: To be documented
Note None documented


function FSCreateFile(const AFileName:String; AAccessMode,AShareMode,ACreateFlags,AFileAttributes:LongWord):THandle; inline;
Description: To be documented
Note None documented


function FSFindCloseFile(AHandle:THandle):Boolean; inline;
Description: Equivalent to Win32 FindClose
Note None documented


function FSFindFirstFile(const AFileName:String; var AFindData:TWin32FindData):THandle; inline;
Description: To be documented
Note None documented


function FSFindNextFile(AHandle:THandle; var AFindData:TWin32FindData):Boolean; inline;
Description: To be documented
Note None documented


function FSFlushFileBuffers(AHandle:THandle):Boolean; inline;
Description: To be documented
Note None documented


function FSGetFileAttributes(const AFileName:String):LongWord; inline;
Description: To be documented
Note None documented


function FSGetFileSize(AHandle:THandle; var AFileSizeHigh:LongWord):LongWord; inline;
Description: To be documented
Note None documented


function FSGetFullPathName(const AFileName:String):String; inline;
Description: To be documented
Note None documented


function FSGetShortPathName(const ALongPath:String):String; inline;
Description: To be documented
Note None documented


function FSMoveFile(const AExistingName,ANewName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSReadFile(AHandle:THandle; var ABuffer; ABytesToRead:LongWord; var ABytesRead:LongWord):Boolean; inline;
Description: To be documented
Note None documented


function FSSetFileApisToANSI:Boolean; inline;
Description: To be documented
Note None documented


function FSSetFileApisToOEM:Boolean; inline;
Description: To be documented
Note None documented


function FSSetFileAttributes(const AFileName:String; AFileAttributes:LongWord):Boolean; inline;
Description: To be documented
Note None documented


function FSSetFilePointer(AHandle:THandle; ADistanceToMove:LongWord; var ADistanceToMoveHigh:LongWord; AMoveMethod:LongWord):LongWord; inline;
Description: To be documented
Note None documented


function FSSetFilePointerEx(AHandle:THandle; const ADistanceToMove:Int64; var ANewFilePointer:Int64; AMoveMethod:LongWord):Boolean; inline;
Description: To be documented
Note None documented


function FSWriteFile(AHandle:THandle;const ABuffer; ABytesToWrite:LongWord; var ABytesWritten:LongWord):Boolean; inline;
Description: To be documented
Note None documented


function FSGetLongPathName(const AShortPath:String):String; inline;
Description: To be documented
Note None documented


function FSSetFileShortName(const AFileName,AShortName:String):Boolean;
Description: To be documented
Note None documented


function FSSetFileShortNameEx(AHandle:THandle; const AShortName:String):Boolean;
Description: To be documented
Note None documented


function FSCreateHardLink(const ALinkName,AFileName:String):Boolean;
Description: To be documented
Note None documented


function FSCreateSymbolicLink(const ALinkName,ATargetName:String; ADirectory:Boolean):Boolean;
Description: To be documented
Note None documented


Directory functions

function FSCreateDirectory(const APathName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSGetCurrentDirectory:String; inline;
Description: To be documented
Note None documented


function FSRemoveDirectory(const APathName:String):Boolean; inline;
Description: To be documented
Note None documented


function FSSetCurrentDirectory(const APathName:String):Boolean; inline;
Description: To be documented
Note None documented


RTL FileSystem functions

System file functions

procedure SystemDoClose(Handle:LongInt);
Description: To be documented
Note None documented


procedure SystemDoErase(Name:PChar; NameChangeable:Boolean);
Description: To be documented
Note None documented


procedure SystemDoRename(Name1,Name2:PChar; Name1Changeable,Name2Changeable:Boolean);
Description: To be documented
Note None documented


function SystemDoWrite(Handle:LongInt; Address:Pointer; Len:LongInt):LongInt;
Description: To be documented
Note None documented


function SystemDoRead(Handle:LongInt; Address:Pointer; Len:LongInt):LongInt;
Description: To be documented
Note None documented


function SystemDoFilePos(Handle:LongInt):LongInt;
Description: To be documented
Note None documented


procedure SystemDoSeek(Handle,Pos:LongInt);
Description: To be documented
Note None documented


function SystemDoSeekEnd(Handle:LongInt):LongInt;
Description: To be documented
Note None documented


function SystemDoFileSize(Handle:LongInt):LongInt;
Description: To be documented
Note None documented


procedure SystemDoTruncate(Handle,Pos:LongInt);
Description: To be documented
Note None documented


procedure SystemDoOpen(var F; Name:PFileTextRecChar; Flags:LongInt; NameChangeable:Boolean);
Description: To be documented
Note FileRec and TextRec have both Handle and Mode as the first items so they could use the same routine for opening/creating.

- When (Flags and $00100) The file will be Appended
- When (Flags and $01000) The file will be Truncated/rewritten
- When (Flags and $10000) There is no check for Close (needed for TextFiles)


System directory functions

procedure SystemDoMkDir(const Dir:RawByteString);
Description: To be documented
Note None documented


procedure SystemDoRmDir(const Dir:RawByteString);
Description: To be documented
Note None documented


procedure SystemDoChDir(const Dir:RawByteString);
Description: To be documented
Note None documented


procedure SystemDoGetDir(Drive:Byte; var Dir:RawByteString);
Description: To be documented
Note None documented


SysUtils file functions

function SysUtilsFileOpen(const FileName:RawByteString; Mode:Integer):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileCreate(const FileName:RawByteString):LongInt;
Description: To be documented
Note None documented


function SysUtilsDeleteFile(const FileName:RawByteString):Boolean;
Description: To be documented
Note None documented


procedure SysUtilsFileClose(Handle:LongInt);
Description: To be documented
Note None documented


function SysUtilsRenameFile(const OldName,NewName:RawByteString):Boolean;
Description: To be documented
Note None documented


function SysUtilsFileSeek(Handle,Offset,Origin:LongInt):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileTruncate(Handle:THandle;Size:Int64):Boolean;
Description: To be documented
Note None documented


function SysUtilsFileAge(const FileName:RawByteString):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileExists(const FileName:RawByteString):Boolean;
Description: To be documented
Note None documented


function SysUtilsFileGetAttr(const FileName:RawByteString):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileGetDate(Handle:LongInt):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileSetAttr(const FileName:RawByteString; Attr:LongInt):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileSetDate(Handle,Age:LongInt):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileRead(Handle:LongInt; out Buffer; Count:LongInt):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileWrite(Handle:LongInt; const Buffer; Count:LongInt):LongInt;
Description: To be documented
Note None documented


function SysUtilsFileSeekEx(Handle:LongInt; Offset:Int64; Origin:LongInt):Int64;
Description: To be documented
Note None documented


function SysUtilsInternalFindFirst(const Path:RawByteString; Attr:LongInt; out SearchRec:TSearchRec; var Name:RawByteString):LongInt;
Description: To be documented
Note None documented


function SysUtilsInternalFindNext(var SearchRec:TSearchRec; var Name:RawByteString):LongInt;
Description: To be documented
Note None documented


procedure SysUtilsInternalFindClose(var Handle:THandle);
Description: To be documented
Note None documented


SysUtils disk functions

function SysUtilsDiskFree(Drive:Byte):Int64;
Description: To be documented
Note No Volume Support


function SysUtilsDiskSize(Drive:Byte):Int64;
Description: To be documented
Note No Volume Support


function SysUtilsDirectoryExists(const Directory:RawByteString):Boolean;
Description: To be documented
Note None documented


FileSystem logging functions

function FileSysLoggingStart(Logging:PLoggingDevice):LongWord;
Description: To be documented
Note None documented


function FileSysLoggingStop(Logging:PLoggingDevice):LongWord;
Description: To be documented
Note None documented


function FileSysLoggingOutput(Logging:PLoggingDevice; const Data:String):LongWord;
Description: To be documented
Note None documented


function FileSysLoggingSetTarget(Logging:PLoggingDevice; const Target:String):LongWord;
Description: To be documented
Note None documented


FileSystem helper functions

function FileSysStorageGetMediaType(Storage:PStorageDevice):TMediaType;
Description: To be documented
Note None documented


function FileSysStorageGetController(Storage:PStorageDevice):TDiskController;
Description: To be documented
Note None documented


procedure FileSysStorageDeviceAdd(Event:PStorageDeviceEvent);
Description: To be documented
Note None documented


procedure FileSysStorageDeviceInsert(Event:PStorageDeviceEvent);
Description: To be documented
Note None documented


function FileSysStorageDeviceRemove(Storage:PStorageDevice):LongWord;
Description: To be documented
Note None documented


function FileSysStorageDeviceEject(Storage:PStorageDevice):LongWord;
Description: To be documented
Note None documented


function FileSysStorageDeviceEnum(Storage:PStorageDevice; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function FileSysStorageDeviceNotify(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;
Description: To be documented
Note None documented


function ComparePartitions(APartition1,APartition2:Pointer):Integer;
Description: Sort partitions in order of start sector
Note None documented


procedure FileSysLog(Level:Integer;const AText:String);
Description: To be documented
Note None documented


procedure FileSysLogInfo(const AText:String); inline;
Description: To be documented
Note None documented


procedure FileSysLogError(const AText:String); inline;
Description: To be documented
Note None documented


procedure FileSysLogDebug(const AText:String); inline;
Description: To be documented
Note None documented


procedure CacheCheckTimer(Data:Pointer);
Description: To be documented
Note None documented


procedure EntryCheckTimer(Data:Pointer);
Description: To be documented
Note None documented


procedure EntryProcessTimer(Data:Pointer);
Description: To be documented
Note None documented


function MediaTypeToString(AType:TMediaType):String;
Description: To be documented
Note None documented


function FloppyTypeToString(AType:TFloppyType):String;
Description: To be documented
Note None documented


function ImageTypeToString(AType:TImageType):String;
Description: To be documented
Note None documented


function DriveTypeToString(AType:TDriveType):String;
Description: To be documented
Note None documented


function FileSysTypeToString(AType:TFileSysType):String;
Description: To be documented
Note None documented


function StringToFileSysType(const AFileSysType:String):TFileSysType;
Description: To be documented
Note None documented


function PartitionIdToString(AId:Byte):String;
Description: To be documented
Note None documented


function StringToPartitionId(const APartitionId:String):Byte;
Description: To be documented
Note None documented


function CacheModeToString(ACacheMode:TCacheMode):String;
Description: To be documented
Note None documented


function CacheStateToString(ACacheState:TCacheState):String;
Description: To be documented
Note None documented


function CachePageTimeToDateTime(const APageTime:Int64):TDateTime;
Description: To be documented
Note None documented


Return to Unit Reference