/* $Header$ */

// FILEOPS Non-Visual Component Resources
// Copyright (C) OMNIS Holdings Inc 1998

/* Changes
Date			Edit			Fault				Description
01-Oct-24 caa2616   ST/EC/1910  Added $joinpath.
19-Jun-24	caa2593		ST/EC/1885	Added tag parameter to fileops workers.
20-May-24	caa2581		ST/EC/1876	Added $isdirectory and $isfile.
24-Feb-24 caa2553   ST/FU/719   Added support for multiple selection to FileOps.
06-Feb-24	rmm11962	ST/FU/857		Added static method FileOps.$spaceinfo.
02-Oct-23 caa1545   ST/EC/1770  Added progress tracking to FileOps Workers.
28-Sep-23 caa0334               Added FileOps Workers to move, copy and delete files or folders.
18-Aug-23 caa2042   ST/EC/1805  Added $filepath property to get an opened file's path.
09-May-22	rmm11553	ST/JS/2976	The dialog opened by FileOps.$putfilename() now prompts if the file already exists when running on Windows, unless kFileOpsWindowsDisablePrompt is passed in the iFlags parameter. 
																This makes the default behaviour compatible with macOS (the file already exists prompt cannot be disabled on macOS).
16-Feb-22	rmm11443							Small improvements to parameter highlighting.
02-Jul-21	caa2019		ST/FU/796		Added InfoCalcDirectorySize to $getfileinfo.
19-May-21	rmm11014	ST/NV/074		Added FileOps.$readfile() and FileOps.$writefile() static methods.
15-Oct-20	caa0121		ST/FU/774		$createdir new parameter for creating parent directories.
02-Mar-20	caa0002		ST/PF/1077	Extra parameters for deleting files.
14-Jan-20	rmm10372	ST/BE/1491	Added static method FileOps.$selectfilesinsystemviewer.
02-Sep-19	rmm10234	ST/EC/1565	Added parameter to $writecharacter() that can be used to control whether to write a BOM when writing to the start of the file.
24-Jun-19	rmm10137	ST/FU/744		The last 3 parameters of FileOps.$splitpathname are now optional.
25-Jun-18	CR0525		ST/DC/672		Rationalise file operation errors ( kerr.. and kFileOps.. ).
21-Jul-17	rmm9434		ST/FU/709		Added bCheckUTF8 parameter to $readcharacter.
23-May-17	rmm9393		ST/EC/1461	Deprecated $readentirefile and $writeentirefile.
19-Aug-16	rmm9010		ST/EC/1416	Added support for large files (files with a size > maximum signed 32 bit integer).
19-Aug-16	rmm8939a							Tidied up some parameter issues.
20-Jun-16	rmm8946		ST/HE/1433	Changed OSX etc to macOS.
18-Jun-13	rmm8013								Updated Omnis X dictionary and added new JNI API to return dictionary as XML.
02-Mar-10	rmm6921		ST/PF/523		Added offset and length arguments to $readcharacter.
02-Mar-10	rmm6920		ST/FU/577		Added append option to $writecharacter.
23-Jul-08	rmm_mobile						Added hidden static functions: $extractcab and $makecab.
15-Jul-08	jc0010		ST/EC/1152	filelist now returns an error when supplied with an empty path
07-Sep-06	rmm5885		ST/DC/351		Tidied up method descriptions.
31-Aug-06	AE6723		ST/EC/1031: Added linkedname to fileops
11-Aug-06 MHn0483		ST/FU/486		Added kFileOpsInfoIsDirectory
04-Aug-05	rmm5459		ST/FU/444		Added error code for the OSX different volume error.
14-Jun-05	PK6727		ST/fu/440		$parentdir added as static method
18-Apr-05	rmm5334		UN/IE/092		...continued: $importencoding and $exportencoding.
14-Sep-04	rmm5093								Fileops now recognises Unicode encodings; Formfile recognises some additional Unicode encodings.
18-Aug-04	rmm5052		ST/HP/049		Help page for fileops included <i> tags - removed incorrect occurrences of these.	
18-May-04	AE6466		ST/NV/038 	Added $readuntil
26-Mar-04 MHn0334		ST/FU/402		Added support for selecting apps in OSX.
12-Feb-03	ijt239		ST/EC/752		Ensured Mac parameters are implemented for $createfile.
17-Dec-02 MHn0201								added $convertposixtohfs and $converthfstoposix for OSX
26-Feb-01	rmm4066								$setfilesize always has an argument.
15 FEB 01 MHCARBON							The second parameter of copyfile is required on all platforms, changed resoureces to reflect this.
29 NOV 00 mpmCarbon							Implements $openresources, $readentirefile and $writeentireile
19-Oct-00	AE5106								Installer changes
04-Feb-99 MHn0032		ST/NV/019		Added kFIleOpsResSize and kFileOpsActualResSize for returning resource fork information.
28-Aug-98	AE4803		ST/NV/005		$createtmpfile description spelt incorrectly.
*/

1   BITMAP  DISCARDABLE     "FILEOPS.BMP"

STRINGTABLE DISCARDABLE 
BEGIN
			// Name of component
		 	1000	"FileOps"

			// Objects
			2000  "FileOps:File Operations Object"
      2001  "FileOpsCopyWorker:File Operations Copy Worker" // caa0334
      2002  "FileOpsMoveWorker:File Operations Move Worker" // caa0334
      2003  "FileOpsDeleteWorker:File Operations Delete Worker" // caa0334
   
      // Properties
      3000  "$filepath:Path to the currently opened file" // caa2042
      
      // caa0334 start
      // Worker Properties
      4000	"$state:A kWorkerState... constant that indicates the current state of the worker object"
      4001  "$errorcode:Error code associated with the last action (zero means no error)"
			4002  "$errortext:Error text associated with the last action (empty means no error)"
      4003	"$threadcount:The number of active background threads for all instances of this type of worker object"
      4004	"$callprogress:If true,the worker periodically generates a notification to $progress as it executes.Defaults to false"
      4005  "$progressinterval:Interval (in seconds) at which progress notifications are generated.Defaults to minimum of 1 seconds" // caa1545
      
      // FileOps Workers methods
      5000  "$run:$run() Run worker on current thread.Returns true if the worker executed successfully"
			5001  "$start:$start() Run worker on background thread.Returns true if the worker was successfully started"
			5002  "$cancel:$cancel() If required,cancels execution of worker on background thread.Will not return until the request has been cancelled"
			5003	"$completed:$completed(wResults) Method called when the request completes.wResults is a row containing the results of executing the request"
			5004	"$cancelled:$cancelled() Method called when the request has been cancelled"
			5005	"$progress:$progress(wProgress) Method called during worker execution to report progress (see $callprogress property)"
      // Copy Worker
      5006  "$init:$init(cFromPath, cToPath[,vTag,bCreatePath=kFalse,bReplace=kFalse,bMerge=kFalse]) Initialise the object so it is ready to copy file from cFromPath to cToPath" // caa2593 // caa2630
      // Move Worker
      5007  "$init:$init(cFromPath, cToPath[,vTag,bCreatePath=kFalse,bReplace=kFalse,bMerge=kFalse]) Initialise the object so it is ready to move file from cFromPath to cToPath" // caa2593 // caa2630
      // Delete Worker
      5008  "$init:$init(cPath[,bDeleteContents=kFalse,bRecursive=kFalse,vTag]) Initialise the object so it is ready to delete file or folder in cPath" // caa2593
      
      // Fileops Worker params
      5500	"Progress:A row variable containing progress information about the current operation"
      5501	"Results:A row variable containing the results of the operation"
      // caa0334 end
      
    	// Fileops Object Instance methods
    	6000  "$openfile:$openfile(cFilePath[,bReadonly=kFalse]) opens an existing file. cFilePath is the pathname of the file to be opened.Returns kTrue for success"
    	6001  "$createfile:$createfile(cFilePath[,cType,cCreator]) creates and opens an empty file with pathname cFilePath (replaces an existing file with an empty file).For macOS,cType and cCreator are file and creator types for new file.Returns kTrue for success"	//<ijt239> // rmm8939a
    	6002  "$createtmpfile:$createtmpfile() creates and then opens a temporary file, ready for you to write data to it.Returns kTrue for success"
    	6003  "$readfile:$readfile(&xVariable[,iStartPos,iLength]) reads data from the open file associated with the object. Binary xVariable receives the data read from the file.Returns kTrue for success"
			6004	"$writefile:$writefile(xVariable[,iStartPos]) writes data to the open file associated with the object. Binary xVariable contains the data to write to the file.Returns kTrue for success"
    	6005  "$closefile:$closefile() closes the file."
			6006  "$isopen:$isopen() returns true if there is an open file associated with the object, false otherwise."
			6007	"$getposition:$getposition() returns the current position of the open file associated with the object."
			6008  "$setposition:$setposition(iNewPos) sets the current position, for the open file associated with the object.Returns kTrue for success"
			6009  "$setfilesize:$setfilesize(iNewSize) sets the file size to iNewSize bytes, for the open file associated with the object.Any data after the first iNewSize bytes is lost.Returns kTrue for success" // rmm4066
			6010	"$getfilesize:$getfilesize() returns the size in bytes of the open file associated with the object. If an error occurs, the function returns -1."
			6011  "$getfileinfo:$getfileinfo(iInfoFlags) Returns a list containing file information for the open file associated with the object. iInfoFlags is a combination of kFileOpsInfo... constants. If an error occurs, the function returns an empty list."
			6012	"$setfileinfo:$setfileinfo(iInfoFlag,vInfoValue,...) sets a file information item for the open file associated with the object to vInfoValue.iInfoFlag is a kFileOpsInfo... constant.Returns an integer error code,zero for success"
			6013	"$openresources:$openresources(cFilePath[,bReadonly=kFalse]) Opens the resource fork of the specified file. This function applies to macOS only.Returns kTrue for success" // mpmCarbon
			6015	"$readcharacter:$readcharacter(iEnc,&cData[,&iOff=0,iMax=0,bChkUTF8=kFalse]) Reads characters encoded using iEnc (kUniType... (not Bin/Char)) into cData.Reads entire file,or iMax chars from byte offset iOff and returns next iOff.Returns kTrue for success"	// rmm5092 // rmm5334 // rmm6921 // rmm9434
			6016, "$writecharacter:$writecharacter(iEnc,cData[,bAppend=kFalse,bBOM=kTrue]) Writes cData to file,encoded using encoding iEnc (kUniType... (not Auto/Bin/Char)).bAppend kFalse means replace entire file contents.bBOM controls BOM.Returns kTrue for success"		// rmm5093 // rmm5334 // rmm6920 // rmm10234
			6017	"$getlasterror:$getlasterror([&cErrorText]) Returns the error code from the last FileOps object method executed;also optionally populates cErrorText with a description of the error.If no error occurred,returns zero and the error text is empty" // rmm9010

			// Object method parameters
			7000  "filePath:The pathname of the file"
			7001  "readonly:If true,the file is opened in read only mode"
			7002  "variable:The variable that contains or will receive the data"
			7003  "startPos:The start position to operate from"
			7004  "length:The number of bytes to read"
			7005  "newPos:The new position in the file"
			7006  "newSize:The new size of the file"
			7007  "infoFlags:Flags of type kFileOpsInfo... defining what file information is required"
			7008  "infoFlag:Constant of type kFileOpsInfo... defining what file information to set"
			7009  "infoValue:The new file information value"
			7010  "filePath:The pathname of the file"	//<ijt239>
			7011  "type:The type for the file (macOS only)"	//<ijt239> // rmm8939a
			7012  "creator:The creator type for the file (macOS only)"	//<ijt239> // rmm8939a
			7013  "res:If true, a resource file is created"		//<ijt239>
			7014	"breakString:The string to break at"
			7015	"enc:The kUniType... constant identifying the encoding of the characters"	// rmm5093 // rmm5334
			7016	"append:If true,the data is appended to the file (if false the data replaces the file contents)"	// rmm6920
			7017	"off:The byte offset from which the characters are to be read.After reading the characters,$readcharacter updates the offset parameter so that it addresses the next character after the characters read"	// rmm6921
			7018	"max:The maximum number of characters to be read.Zero means read until end of file" // rmm6921
			// Start rmm8013
			7019	"path:The pathname of the file or directory"
			7020	"fromPath:The pathname of the source file or directory"
			7021	"toPath:The pathname of the destination file or directory"
			7022	"prompt:The prompt text to add to the dialog"
			7023	"filter:The filter used to restrict the files listed"
			7024	"initialDirectory:The initial directory to use for the dialog"
			7025	"flags:The flags to control how the dialog works;a sum of zero or more of kFileOpsSelectApps, kFileOpsOpenApps and kFileOpsWindowsDisablePrompt" // rmm11553
			7026	"driveName:The drive name component of the path"
			7027	"directoryName:The directory name component of the path"
			7028	"fileName:The file name component of the path"
			7029	"fileExtension:The file extension component of the path"
			7030	"include:Identifies the object types to include in the result - a sum of kFileOpsInclude... constants"
			7031	"information:Identifies the information to include in the result - a sum of kFileOpsInfo... constants"
			7032	"errorText:If an error occurs, further information about the error is returned by setting this parameter"
			7033	"informationFlag:A kFileOpsInfo... constant identifying the information to set"
			7034	"infoValue:The value to which the information will be set"
			7035	"oldName:The current name of the directory or file"
			7036	"newName:The new name of the directory or file"
			7037	"variable:Binary file contents with a header"
			7038	"hfsPath:An HFS pathname"
			7039	"posixPath:A POSIX pathname"
			7040	"permissions:A Unix permissions string"
			// End rmm8013
			7041	"errorText:Text describing the error"	// rmm9010
			7042	"chkUTF8:If the data does not have a BOM when iEnc is kUniTypeAuto and you are reading the entire file (so iOff and iMax are both zero),use UTF-8 as the detected encoding if the data is consistent with UTF-8 encoding rules" // rmm9434
			7043	"data:The variable into which the character data will be read"	// rmm9434
			7044	"data:The variable that contains the character data to write"		// rmm9434
			7045	"BOM:If true,and the data is to be written at the start of the file,$writecharacter adds a Unicode Byte Order Marker at the start of the file" // rmm10234
			7046	"fileOrFolder:Either the pathname of a single file to select (when $selectfilesinsystemviewer is called with a single parameter) or the pathname of the folder containing the files to select (when $selectfilesinsystemviewer is called with 2 parameters)" // rmm10372
			7047	"fileList:A single column list of file names,specifying the files to select in the specified folder" // rmm10372
			7048	"deleteContents:If true and the path is a directory, the files inside the directory will be deleted" // caa0002
			7049	"recursive:If true and the path is a directory, every sub-directory will be deleted too" // caa0002
			7050	"createPath:If true, create any missing parent directories" // caa2630
			7051	"variable:The variable into which the file contents will be read. Binary or character. If it is character,the file contents are converted to character using the encoding specified by the iEnc parameter"	// rmm11014
			7052	"enc:The encoding used to convert the file contents to character. A kUniType... constant, not kUniTypeBinary or kUniTypeCharacter. Only used when vVariable is a character variable"	// rmm11014
			7053	"variable:The variable from which the file contents will be written. Binary or character. If it is character,the data is converted to the encoding specified by the iEnc parameter before it is written"	// rmm11014
			7054	"enc:The encoding used to convert a character variable to the file contents to be written. A kUniType... constant, not kUniTypeAuto, kUniTypeBinary or kUniTypeCharacter"	// rmm11014
			7055	"replace:Specifies what occurs if the file already exists before calling FileOps.$writefile(). If bReplace is true, FileOps.$writefile() replaces the file; if bReplace is false, FileOps.$writefile() returns an error" // rmm11014
			7056	"BOM:If true,and character data is to be encoded as Unicode,$writefile adds a Unicode Byte Order Marker at the start of the file" // rmm11014
			7057	"path:Receives the pathname of the selected file"					// rmm11443
			7058	"path:Receives the pathname of the selected directory"		// rmm11443
			7059	"path:The pathname of a file or directory on the file system for which space information is required"	// rmm11962
			7060,	"size:The total size (in bytes) of the file system" // rmm11962
			7061, "free:The free space (in bytes) of the file system" // rmm11962
			7062, "available:The available space (in bytes) of the file system. May be less than the free space" // rmm11962
      7063  "ListOrCharacter:Receives the pathname of the selected file" // caa2553
			7064	"Tag:If supplied, some data that is passed to $completed in the column __tag of the row parameter.This can be used for example to identify the caller when the worker object is shared by several instances" // caa2593
      7065  "Segment:A segment of a path" // caa2616
      // caa2630 start
      7066  "replace:Replaces file or directory when kTrue"
      7067  "merge:Merges directories when kTrue"
      // caa2630 end
      7068  "path:Character variable to receive the path to the temporary directory" // caa2634

		 	// Static Methods
			8000	"$createdir:$createdir(cPath[,bCreatePath=kFalse]) Creates a directory with the pathname <i>cPath. If bCreatePath is true, all non-existing directories specified in the <i>cPath parameter will be created." // caa0121
			8001	"$deletefile:$deletefile(cPath[,bDeleteContents=kFalse,bRecursive=kFalse]) Deletes the file or folder named <i>cPath. <i>bDeleteContents deletes files inside <i>cPath. <i>bRecursive deletes sub-folders inside <i>cPath if <i>bDeleteContents is true." // caa0002
			8002	"$copyfile:$copyfile(cFromPath,cToPath) Deprecated: copies the file specified in <i>cFromPath to the file <i>cToPath.The file named in <i>cToPath must not already exist." // MHCARBON // caa2630
			8003  "$movefile:$movefile(cFromPath,cToPath) Deprecated: moves the file <i>cFromPath to the new location <i>cToPath." // caa2630
			8004	"$putfilename:$putfilename(&cPath[,cPrompt,cFilter,cInitialDirectory,iFlags]) Opens the standard Save file dialog. Returns Boolean true if a file was selected" // MHn0334
			8005	"$getfilename:$getfilename(&vListOrCharacter[,cPrompt,cFilter,cInitialDirectory,iFlags]) Opens the standard Open file dialog. Returns Boolean true if a file was selected" // MHn0334
			8006	"$selectdirectory:$selectdirectory(&cPath[,cPrompt,cInitialDirectory,iFlags]) Opens the Select directory dialog. Returns Boolean true if a directory was selected" // MHn0334 // rmm11443
			8007  "$doesfileexist:$doesfileexist(cPath) Returns true if the file or folder named <i>cPath exists. Otherwise, it returns false."
			8008	"$changeworkingdir:$changeworkingdir(cPath) Changes the current working directory to the directory named in <i>cPath."
			8009	"$getworkingdir:$getworkingdir() Returns the current working directory (no parameters required). The function returns an empty string if an error occurs."
			8010  "$splitpathname:$splitpathname(cPath,&cDriveName[,&cDirectoryName,&cFileName,&cFileExtension]) Splits the path <i>cPath into <i>cDriveName, <i>cDirectoryName, <i>cFileName, and <i>cFileExtension. Returns zero for success or a non-zero error code" // rmm10137
			8011	"$filelist:$filelist(iInclude,cPath[,iInformation,cFilter,&cErrorText]) Returns a list of files, directories, and volumes. Errors are reported to <i>cErrorText." //jc0010
			8012  "$getfileinfo:$getfileinfo(cPath,iInformation) Returns a list of file information for the file named <i>cPath."
			8013	"$setfileinfo:$setfileinfo(cPath,iInformationFlag,vInfoValue,...) Sets file information for the file named <i>cPath."
			8014	"$rename:$rename(cOldname,cNewname) Renames the file or folder named <i>cOldname to <i>cNewname."
			8015	"$getunixpermissions:$getunixpermissions(cPath) Returns the Unix permissions string for the file identified by <i>cPath."
			8016	"$readentirefile:$readentirefile(cPath,&xVariable) Deprecated: reads the entire file identified by <i>cPath into binary <i>xVariable." // mpmCarbon // rmm9393
			8017	"$writeentirefile:$writeentirefile(cPath,xVariable) Deprecated: creates and writes the entire file identified by <i>cPath, using the data supplied in binary <i>xVariable." // mpmCarbon // rmm9393
			8018	"$converthfspathtoposixpath:$converthfspathtoposixpath(cHfsPath,&cPosixPath) (macOS only) converts an HFS file path to a POSIX file path." // MHn0201
			8019	"$convertposixpathtohfspath:$convertposixpathtohfspath(cPosixPath,&cHfsPath) (macOS only) converts a POSIX file path to an HFS file path." // MHn0201
			8020  "$parentdir:$parentdir(cPath) Returns the pathname of the directory containing the file or directory identified by cPath"						// PK6727
			8021	"$setunixpermissions:$setunixpermissions(cPath,cPermissions) Sets the Unix permissions for the file identified by <i>cPath"
			8022	"$makecab:$makecab(cCabPath,lFileList,&cErrorText) (Windows only) Creates simple CAB file with specified path (path must not already exist) containing the files with paths stored in column 1 of the supplied list.Returns non-empty <i>cErrorText for failure."	// rmm_mobile
			8023	"$extractcab:$extractcab(cCabPath,cExtractDirectory,&cErrorText) (Windows only) Extracts all files in the specified CAB file into <i>cExtractDirectory.Returns non-empty <i>cErrorText for failure."																																			// rmm_mobile
			8024	"$selectfilesinsystemviewer:$selectfilesinsystemviewer(cFileOrFolder[,lFileList]) Opens the system file viewer (Finder or Explorer) and selects the specified file or files" // rmm10372
			8025	"$readfile:$readfile(cFilePath,&vVariable[,iEnc=kUniTypeAuto]) Reads the file <i>cFilePath into the variable <i>vVariable. Returns an integer error code (zero for success)"	// rmm11014
			8026	"$writefile:$writefile(cFilePath,vVariable[,iEnc=kUniTypeUTF8,bBOM=kTrue,bReplace=kTrue,bCreateParentDirectories=kFalse]) Writes the file <i>cFilePath with the contents of variable <i>vVariable. Returns an integer error code (zero for success)"	// rmm11014 // caa2631
			8027	"$spaceinfo:$spaceinfo(cPath,&iSize,&iFree,&iAvailable) Gets the space information about the file system containing the specified path.  Returns Boolean true if size information was returned" // rmm11962
			8028	"$isdirectory:$isdirectory(cPath) Returns true if <i>cPath exists and is a directory, otherwise it returns false" // caa2581
			8029	"$isfile:$isfile(cPath) Returns true if <i>cPath exists and is a file, otherwise it returns false" // caa2581
			8030	"$joinpath:$joinpath(cSegment, ...) Joins all given <i>cSegment together using the platform-specific separator as delimiter. Zero-length segments are ignored" // caa2616
			8031	"$copy:$copy(cFromPath,cToPath[,bCreatePath=kFalse,bReplace=kFalse,bMerge=kFalse]) Copies the file or folder in <i>cFromPath to <i>cToPath." // caa2630
			8032	"$move:$move(cFromPath,cToPath[,bCreatePath=kFalse,bReplace=kFalse,bMerge=kFalse]) Moves the file or folder in <i>cFromPath to <i>cToPath." // caa2630
			8033	"$createtmpdir:$createtmpdir(&cPath) Creates a temporary directory and returns the path in <i>cPath" // caa2634
			8034	"$getfileid:$getfileid(cPath) Returns the unique file system identifier of the file or folder at cPath" // caa2670

      // caa0334 start
      // Errors:
			9900	"One or more missing parameters"
			9901	"Worker not initialised by a call to init"
      // caa0334 end
			
			// Start rmm_mobile
			10000	"Too few parameters passed"
			10001	"Output CAB file already exists"
			10002	"Input CAB file does not exist"
			10003	"Pathname cannot be empty"
			10004,"Extract directory does not exist"
			10005,"Error creating CAB context handle"
			10006,"Invalid output CAB directory"
			10007,"Invalid CAB file name"
			10008,"Unable to add file to CAB file"
			10009,"Unable to destroy CAB context handle"
			10010,"Unable to flush CAB file"
			10011,"Unable to open CAB file"
			10012,"File is not a CAB file"
			10013,"Failed to extract content from CAB file"
			// End rmm_mobile
			
		 	// Constants
		 	19999	"kFileOps"		// Constant prefix
			20000	"OK:0:OK:No Error"
			20001 "NoOperation:999:NoOperation:Operation not supported on this platform"
			20002 "ParamError:1:ParamError:Too few parameters passed"
			20003 "OutOfMemory:12:OutOfMemory:Out of memory"
			20004 "PermissionDenied:101203:PermissionDenied:Permission denied."												// CR0525
			20005 "DirFull:-33:DirFull:File/Directory full"
			20006 "DiskFull:101206:DiskFull:Disk full"																								// CR0525
			20007 "VolumeNotFound:-35:VolumeNotFound:Specified volume doesn't exist"
			20008 "DiskIOError:-36:DiskIOError:Disk I/O error"
			20009 "BadName:-37:BadName:Bad file name or volume name (perhaps zero-length)"
			20010 "FileNotOpen:101202:FileNotOpen:File not open"																			// CR0525
			20011 "EndOfFile:101207:EndOfFile:Logical end-of-file reached during read operation"			// CR0525
			20012 "PositionBeforeStart:-40:PositionBeforeStart:Attempt to position before the start of the file"
			20013 "TooManyFilesOpen:-42:TooManyFilesOpen:Too many files open"
			20014 "FileNotFound:101201:FileNotFound:File not found"																		// CR0525
			20015 "HardwareVolumeLock:-44:HardwareVolumeLock:Volume is locked by a hardware setting"
			20016 "FileLocked:101205:FileLocked:File is locked"																				// CR0525
			20017 "SoftwareVolumeLock:-46:SoftwareVolumeLock:Volume is locked by a software flag"
			20018 "MoreFilesOpen:-47:MoreFilesOpen:One or more files are open"
			20019 "AlreadyExists:101215:AlreadyExists:A file with the specified name already exists"	// CR0525
			20020 "AlreadyWriteOpen:-49:AlreadyWriteOpen:The file is already open with write permission"
			20021 "NoDefaultVolume:-50:NoDefaultVolume:No default volume"
			20022 "VolumeNotOnline:-53:VolumeNotOnline:Volume not on-line"
			20023 "ReadOnlyFile:-54:ReadOnlyFile:Read only file"
			20024 "VolumeAlreadyMounted:-55:VolumeAlreadyMounted:Specified volume is already mounted and on-line"
			20025 "BadDrive:-56:BadDrive:No such drive number"
			20026 "InvalidFormat:-57:InvalidFormat:Volume lacks Macintosh-format directory"
			20027 "ExternalSystemError:-58:ExternalSystemError:External file system error"
			20028 "ProblemDuringRename:-59:ProblemDuringRename:Problem during rename"
			20029 "BadMasterBlock:-60:BadMasterBlock:Master directory block is bad; must re-initialize volume"
			20030 "CantOpenLockedFile:-61:CantOpenLockedFile:Cannot open a locked file"
			20031 "DirectoryNotFound:-120:DirectoryNotFound:Directory not found"
			20032 "TooManyDirOpen:-121:TooManyDirOpen:Too many working directories open"
			20033 "CantMoveToOffspring:-122:CantMoveToOffspring:Attempted to move into offspring"
			20034 "NonHFSOperation:-123:NonHFSOperation:Attempt to do HFS operation on a non-HFS volume"
			20035 "InternalSystemError:-127:InternalSystemError:Internal file system error"
			20036 "UnknownError:998:UnknownError:Unknown error"
			20037,"InvalidEncoding:1000:InvalidEncoding:Invalid encoding parameter passed to $readcharacter/$readfile or $writecharacter/$writefile. Must be a kUniType... constant, not kUniTypeBinary/Character, and when writing it cannot be kUniTypeAuto" // rmm5093 // rmm5334 // rmm11014
			20038,"DifferentVolume:-124:DifferentVolume:The operation is not allowed to be carried out between two different volumes"	// rmm5459
			20039 "NoPath:997:NoPath:No path supplied" 	//jc0010
			20040,"FileTooLarge:996:FileTooLarge:The file is too large to be read by $readentirefile (its size must not exceed 0x7FFFFFE4 bytes)" // rmm9010
			20041,"ErrorChkUTF8:995:ErrorChkUTF8:Cannot pass bChkUTF8 as kTrue when iOff or iMax is non-zero"	// rmm9434
			20042 "DirectoryNotEmpty:1100:DirectoryNotEmpty:Directory is not empty, please use other parameters to delete the contents/delete recursively" // caa0002
			20043,"VariableMustBeBinaryOrCharacter:1101:VariableMustBeBinaryOrCharacter:The data type of the vVariable parameter must be binary or character" // rmm11014
      20044,"CrossDeviceLink:100:CrossDeviceLink:The system cannot move the file to a different device" // caa2544
			// rmm9010: Errors can use the range up to 20049 - see call to ECOgetConstantDescriptionByValue
			20050 "IncludeFiles:1:IncludeFiles:Whether the listing includes files"	// rmm5093: renumbered, to leave space for more errors
			20051 "IncludeDirectories:2:IncludeDirectories:Whether the listing includes volumes"
			20052 "IncludeVolumes:4:IncludeDirectories:Whether the listing includes volumes"

			// rmm8939a: Renumbered to keep settable info values in a block at the start
			// rmm8939a: Start of settable values
			20053 "InfoReadOnly:8:InfoReadOnly:Boolean which indicates if the file is read only"
			20054 "InfoHidden:16:InfoHidden:Boolean which indicates if the file is hidden"
			// rmm8939a: End of settable values for Windows/Linux
			20055 "InfoCreated:128:InfoCreated:The creation date of the file (can only be set when running on macOS)"
			20056 "InfoModified:256:InfoModified:The modification date of the file (can only be set when running on macOS)"
			20057 "InfoCreatorCode:512:InfoCreatorCode:(macOS Only)The creator code of the file"
			20058 "InfoTypeCode:1024:InfoTypeCode:(macOS Only)The type code of the file"
			// rmm8939a: End of settable values for Cocoa
			20059 "InfoName:1:InfoName:Name of the file"
			20060 "InfoName83:2:InfoName:(Windows-ONLY)Name of the file in 8.3 format"
			20061 "InfoFullName:4:InfoName:Full pathname of the file"
			20062 "InfoSize:32:InfoSize:The size of the file on the file system (number of bytes used from file system)"
			20063 "InfoActualSize:64:InfoActualSize:The actual size of the file"
			20064 "InfoResSize:2048:InfoResSize:(macOS Only)The size of the file resource fork on the file system (number of bytes used from file system)" // MHn0032
			20065 "InfoActualResSize:4096:InfoActualResSize:(macOS Only)The actual size of the file resource fork" // MHn0032		
			20066 "InfoIsDirectory:8192:InfoIsDirectory:If the path specified points to a directory" // MHn0483
			20067 "InfoLinkedName:16384:InfoLinkedName:The name of the linked file (if any)" // AE6723
			20068 "InfoCalcDirectorySize:32768:InfoCalcDirectorySize:The size of the directory on the file system." // caa2019
			
			20069 "SelectApps:1:SelectApps:(macOS Only) Allows users to select applications via $getfilename, $putfilename and $selectdirectory" // MHn0334
			20070 "OpenApps:2:OpenApps:(macOS Only) Allows users to browse the content of applications via $getfilename, $putfilename and $selectdirectory" // MHn0334
			20071	"WindowsDisablePrompt:4:WindowsDisablePrompt:(Windows Only) Prevents the built-in system prompt asking if $putfilename can replace an existing file"		// rmm11553
			
			20500	"name"
			20501	"name83"
			20502	"fullname"
			20503	"readonly"
			20504	"hidden"
			20505	"size"
			20506	"actualsize"
			20507	"created"
			20508	"modified"
			20509	"creator"
			20510	"type"
			20511	"ressize" 			// MHn0032
			20512	"actualressize" // MHn0032			
			20513	"isdirectory" 	// MHn0483
			20514 "linkedname"
			20515 "size"					// caa2019

	    31000 "FileOpsProc"
END


