%Library.File
stream class %Library.File extends %Library.AbstractStream
For information on this class, see Using %Library.File.
The %File class represents a disk file. It contains a number of class methods that provide a number of file system services.For example,
If ##class(%File).Exists("file.txt") Write "It exists",!
You can also create an instance of a %File object that represents a particular file. %File makes a number of file attributes accessible as properties as well as providing a %AbstractStream interface on the file.
For example,
Set file=##class(%File).%New("file.txt") Write file.Size Do file.Open("WSN") Do file.WriteLine("This is a line of text")
Property Inventory
Method Inventory
- Attributes()
- CanonicalFilename()
- CanonicalNameGet()
- Clear()
- Close()
- Compare()
- ComplexDelete()
- ComputeFullDBDir()
- Construct()
- CopyDir()
- CopyFile()
- CopyFromAndSave()
- CreateDirectory()
- CreateDirectoryChain()
- CreateNewDir()
- DateCreatedGet()
- DateModifiedGet()
- Deconstruct()
- Delete()
- DirectoryExists()
- DriveListClose()
- DriveListExecute()
- DriveListFetch()
- Exists()
- FileSetClose()
- FileSetExecute()
- FileSetFetch()
- GetDirectory()
- GetDirectoryLength()
- GetDirectoryPiece()
- GetDirectorySpace()
- GetFileDateCreated()
- GetFileDateModified()
- GetFileSHA256Hash()
- GetFileSize()
- GetFilename()
- GetOwnerGroup()
- LastModifiedGet()
- ManagerDirectory()
- NormalizeDirectory()
- NormalizeFilename()
- NormalizeFilenameWithSpaces()
- Open()
- ParentDirectoryName()
- ParseDirectoryClose()
- ParseDirectoryExecute()
- ParseDirectoryFetch()
- Read()
- ReadOnly()
- RemoveDirectory()
- RemoveDirectoryTree()
- Rename()
- Rewind()
- SHA1Hash()
- SetAttributes()
- SetFileDateModified()
- SetOwnerGroup()
- SetReadOnly()
- SetUMask()
- SetWriteable()
- SizeGet()
- SubDirectoryName()
- TempFilename()
- Truncate()
- Write()
- WriteLine()
- Writeable()
Parameters
Properties
Methods
Microsoft Windows® returns a value as a combination of bits whose meaning is:
- 1: 0x00001 - Read-only
- 2: 0x00002 - Hidden
- 4: 0x00004 - System
- 8: 0x00008 - Unused
- 16: 0x00010 - Directory
- 32: 0x00020 - Archive
- 64: 0x00040 - Device
- 128: 0x00080 - Normal
- 256: 0x00100 - Temporary
- 512: 0x00200- Sparse File
- 1024: 0x00400 - Reparse Point
- 2048: 0x00800 - Compressed
- 4096: 0x01000 - Offline
- 8192: 0x02000 - Content Not Indexed
- 16384: 0x04000 - Encrypted
- 32768: 0x08000 - Unused
- 65536: 0x10000 - Virtual
In UNIX®, the returned value represents the mode map:
- 1: 0x0001 - execute permission for others
- 2: 0x0002 - write permission for others
- 4: 0x0004 - read permission for others
- 7: 0x0007 - mask for others permissions
- 8: 0x0008 - execute permission for group
- 16: 0x0010 - write permission for group
- 32: 0x0020 - read permission for group
- 56: 0x0038 - mask for group permissions
- 64: 0x0040 - execute permission for owner
- 128: 0x0080 - write permission for owner
- 256: 0x0100 - read permission for owner
- 448: 0x01C0 - mask for file owner permissions
- 512: 0x0200 - sticky bit
- 1024: 0x0400 - set groupid
- 2048: 0x0800 - set userid
- 4096: 0x1000 - fifo
- 8192: 0x2000 - character device
- 16384: 0x4000 - directory
- 24576: 0x6000 - block device
- 32768: 0x8000 - regular file
- 40960: 0xA000 - symbolic link
- 49152: 0xC000 - socket
- 61440: 0xF000 - mask for file type
Note: Individual Operating System vendor differences may exist. The relevant man/help pages or other associated documentation should be consulted for a definitive description of the file attributes on a given system.
Returns a %Status value indicating success or failure.
Set dirs($i(dirs))=$system.Util.DataDirectory() Set dirs($i(dirs))="httpd" Set dirs($i(dirs))="logs" Set filename=##class(%File).Construct(dirs...)
Parameter pOverlay Parameter pDeleteBeforeCopy may be used to specify that any file that already exists in the target directory should be deleted before being overwritten with the source file. The default is 0 or false.
This method returns true if it succeeds and false otherwise.
Note: (1) If the target directory exists and pOverlay is false (default), then the operation fails. Also, if any of the target files exist and pDeleteBeforeCopy is false (default), then the operation may fail usually due to operating system characteristics. (2) The total number of files or directories created/copied during the operation can be gotten by passing a byref value in pCreated.
Parameter pDeleteBeforeCopy may be used to specify that if the target file already exists then it should be deleted before being overwritten with the source file. The default is 0 or false.
This method returns true if it succeeds and false otherwise. Pass return by reference to obtain the low level return value in case of errors which is the negative value of the operating system return code or of an IRIS simulated operating system return code.
Also see $SYSTEM.Process.OSError().
Name = Valid Drive or directory specification
Flag = 0 - Return bytes
Flag = 1 - Return MB (Default)
Flag = 2 - Return GB
MB and GB returned are rounded to 2 decimal places.
Any error status returned is O/S level error. Note that on Windows only drives have a measurement for free space and directories can not so the FreeSpace is only returned for drives.
If the directory is a relative path (rather than an absolute path) then the absolutedirectory parameter determines what we normalize the directory compoent relative to. If absolutedirectory is "" or not passed in then we normalize relative to the current default directory otherwise we will normalize relative to the passed in absolutedirectory.
addnull use is deprecated
Parameter
pathname : A filename or pathname.
Description
The NormalizeFilenameWithSpaces class method handles spaces in pathnames as appropriate to the host platform.
If a pathname contains spaces NormalizeFilenameWithSpaces returns the pathname enclosed in double quotes ("path name"). If a pathname does not contain spaces, the method returns it unchanged. NormalizeFilenameWithSpaces performs no other pathname validation.
NormalizefilenameWithSpaces is commonly used with the $ZF() functions.
Note that this method does not perform the normalization actions of NormalizeFilename().
mode is a string containing one or more file modes including:
R | Read |
W | Write |
S | Stream mode |
N | Create a new file (overwrite existing file) |
A complete discussion of the available options for mode can be found in the online documentation in the book, I/O Devices Guide, specifically the chapter on Sequential File I/O.
If the directory is already the root (e.g., "/" on Unix, "c:\" on Windows), return the root.
This uses the unix "chown" command to perform the operation, and is valid only on Unix platforms.
If you specify ext the temp filename will have this extension.
Pass return by reference to obtain the low level return value in case of an error. It will be the negative value of the operating system return code, or 0 if there is no error.
In case of an error, the method returns an empty string.
Queries
- Windows: return a list of available drives
- Unix: return a list of mounted file systems
- Name - the name of the file (the default)
- Type - file type
- DateCreated - the date the file was created (rounded to the millisecond)
- DateModified - the date the file was last modified (rounded to the millisecond)
- Size - the file size
Inherited Members
Inherited Properties
Inherited Methods
- %AddToSaveSet()
- %CheckUnique()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %Delete()
- %DeleteExtent()
- %DeleteId()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Exists()
- %ExistsId()
- %Extends()
- %GetParameter()
- %GetSwizzleObject()
- %Id()
- %IsA()
- %IsModified()
- %IsNull()
- %KillExtent()
- %LOBPrefetch()
- %LocationSet()
- %LockStream()
- %New()
- %NormalizeObject()
- %ObjectIsNull()
- %ObjectModified()
- %ObjectSize()
- %Oid()
- %Open()
- %OpenId()
- %OriginalNamespace()
- %PackageName()
- %ReleaseLock()
- %Reload()
- %RemoveFromSaveSet()
- %RollBack()
- %Save()
- %SerializeObject()
- %SetModified()
- %UnlockStream()
- %ValidateObject()
- CopyFrom()
- DeleteAttribute()
- DeleteStream()
- FindAt()
- Flush()
- GetAttribute()
- GetAttributeList()
- GetStreamId()
- InputFromDevice()
- IsCharacter()
- IsDefinedAttribute()
- IsNull()
- LineTerminatorSet()
- MoveTo()
- MoveToEnd()
- NextAttribute()
- OpenStream()
- OutputToDevice()
- OutputToDeviceAt()
- ReadLine()
- ReadLineIntoStream()
- ReadSQL()
- SaveStream()
- SerializeToSyncSet()
- SetAttribute()
- SetAttributeList()
- StreamOIDIsNull()
- SyncStreamIn()