21 #import "OFDictionary.h" 23 OF_ASSUME_NONNULL_BEGIN
28 # if (defined(OF_HAVE_CHMOD) && !defined(OF_AMIGAOS) && \ 29 !defined(OF_NINTENDO_DS)) || defined(DOXYGEN) 30 # define OF_FILE_MANAGER_SUPPORTS_PERMISSIONS 32 # if (defined(OF_HAVE_CHOWN) && !defined(OF_AMIGAOS)) || defined(DOXYGEN) 33 # define OF_FILE_MANAGER_SUPPORTS_OWNER 35 # if (defined(OF_HAVE_LINK) && !defined(OF_AMIGAOS) && !defined(OF_HAIKU) && \ 36 !defined(OF_NINTENDO_DS)) || defined(OF_WINDOWS) || defined(DOXYGEN) 37 # define OF_FILE_MANAGER_SUPPORTS_LINKS 39 # if (defined(OF_HAVE_SYMLINK) && !defined(OF_AMIGAOS) && \ 40 !defined(OF_NINTENDO_DS)) || defined(OF_WINDOWS) || defined(DOXYGEN) 41 # define OF_FILE_MANAGER_SUPPORTS_SYMLINKS 43 # if defined(OF_LINUX) || defined(OF_MACOS) || defined(OF_FREEBSD) || \ 44 defined(OF_NETBSD) || defined(OF_HAIKU) || defined(OF_SOLARIS) || \ 46 # define OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES 50 @class OFArray OF_GENERIC(ObjectType);
273 #ifndef OF_FILE_MANAGER_M 274 OF_SUBCLASSING_RESTRICTED
277 #ifdef OF_HAVE_CLASS_PROPERTIES 370 - (bool)fileExistsAtPath: (
OFString *)path;
381 - (bool)fileExistsAtIRI: (
OFIRI *)IRI;
390 - (bool)directoryExistsAtPath: (
OFString *)path;
401 - (bool)directoryExistsAtIRI: (
OFIRI *)IRI;
410 - (void)createDirectoryAtPath: (
OFString *)path;
420 - (void)createDirectoryAtPath: (
OFString *)path
421 createParents: (
bool)createParents;
432 - (void)createDirectoryAtIRI: (
OFIRI *)IRI;
444 - (void)createDirectoryAtIRI: (
OFIRI *)IRI createParents: (
bool)createParents;
494 - (void)changeCurrentDirectoryPath: (
OFString *)path;
503 - (void)changeCurrentDirectoryIRI: (
OFIRI *)IRI;
542 - (void)copyItemAtIRI: (
OFIRI *)source toIRI: (
OFIRI *)destination;
592 - (void)moveItemAtIRI: (
OFIRI *)source toIRI: (
OFIRI *)destination;
603 - (void)removeItemAtPath: (
OFString *)path;
616 - (void)removeItemAtIRI: (
OFIRI *)IRI;
618 #ifdef OF_FILE_MANAGER_SUPPORTS_LINKS 652 - (void)linkItemAtIRI: (
OFIRI *)source toIRI: (
OFIRI *)destination;
654 #ifdef OF_FILE_MANAGER_SUPPORTS_SYMLINKS 672 - (void)createSymbolicLinkAtPath: (
OFString *)path
673 withDestinationPath: (
OFString *)target;
693 - (void)createSymbolicLinkAtIRI: (
OFIRI *)IRI
694 withDestinationPath: (
OFString *)target;
696 #ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES 734 - (void)getExtendedAttributeData: (
OFData *_Nonnull *_Nonnull)data
735 andType: (
id _Nullable *_Nullable)type
758 ofItemAtIRI: (
OFIRI *)IRI;
781 - (void)getExtendedAttributeData: (
OFData *_Nonnull *_Nonnull)data
782 andType: (
id _Nullable *_Nullable)type
784 ofItemAtIRI: (
OFIRI *)IRI;
786 #ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES 801 - (void)setExtendedAttributeData: (
OFData *)data
824 - (void)setExtendedAttributeData: (
OFData *)data
825 andType: (nullable
id)type
846 - (void)setExtendedAttributeData: (
OFData *)data
848 ofItemAtIRI: (
OFIRI *)IRI;
871 - (void)setExtendedAttributeData: (
OFData *)data
872 andType: (nullable
id)type
874 ofItemAtIRI: (
OFIRI *)IRI;
876 #ifdef OF_FILE_MANAGER_SUPPORTS_EXTENDED_ATTRIBUTES 890 - (void)removeExtendedAttributeForName: (
OFString *)name
909 - (void)removeExtendedAttributeForName: (
OFString *)name
910 ofItemAtIRI: (
OFIRI *)IRI;
913 @interface OFDictionary (FileAttributes)
919 @property (readonly, nonatomic) unsigned long long fileSize;
933 @property (readonly, nonatomic)
unsigned long filePOSIXPermissions;
940 @property (readonly, nonatomic)
unsigned long fileOwnerAccountID;
947 @property (readonly, nonatomic)
unsigned long fileGroupOwnerAccountID;
954 @property (readonly, nonatomic)
OFString *fileOwnerAccountName;
961 @property (readonly, nonatomic)
OFString *fileGroupOwnerAccountName;
968 @property (readonly, nonatomic)
OFDate *fileLastAccessDate;
975 @property (readonly, nonatomic)
OFDate *fileModificationDate;
982 @property (readonly, nonatomic)
OFDate *fileStatusChangeDate;
989 @property (readonly, nonatomic)
OFDate *fileCreationDate;
996 @property (readonly, nonatomic)
OFString *fileSymbolicLinkDestination;
1003 @property (readonly, nonatomic)
1007 OF_ASSUME_NONNULL_END
An abstract class for storing objects in an array.
Definition: OFArray.h:107
const OFFileAttributeKey OFFileModificationDate
The last modification date of the file as an OFDate.
const OFFileAttributeType OFFileTypeSocket
A socket.
OFConstantString * OFFileAttributeKey
A key for a file attribute in the file attributes dictionary.
Definition: OFFileManager.h:54
const OFFileAttributeKey OFFileLastAccessDate
The last access date of the file as an OFDate.
const OFFileAttributeType OFFileTypeSymbolicLink
A symbolic link.
const OFFileAttributeType OFFileTypeFIFO
A FIFO.
A class for storing, accessing and comparing dates.
Definition: OFDate.h:33
A class for storing constant strings using the @"" literal.
Definition: OFConstantString.h:41
A class which provides management for files, e.g. reading contents of directories, deleting files, renaming files, etc.
Definition: OFFileManager.h:276
The root class for all other classes inside ObjFW.
Definition: OFObject.h:690
OFIRI * currentDirectoryIRI
The IRI of the current working directory.
Definition: OFFileManager.h:294
const OFFileAttributeKey OFFileExtendedAttributesNames
The names of the extended attributes as an OFArray of OFString.
const OFFileAttributeKey OFFileOwnerAccountID
The account ID of the owner of the file as an OFNumber.
const OFFileAttributeKey OFFileSymbolicLinkDestination
The destination of a symbolic link as an OFString.
const OFFileAttributeKey OFFileSize
The size of the file as an OFNumber.
OFDictionary * OFFileAttributes
A dictionary mapping keys of type OFFileAttributeKey to their attribute values.
Definition: OFFileManager.h:101
const OFFileAttributeKey OFFileGroupOwnerAccountID
The account ID of the group owner of the file as an OFNumber.
A class for handling strings.
Definition: OFString.h:142
const OFFileAttributeKey OFFileStatusChangeDate
The last status change date of the file as an OFDate.
const OFFileAttributeKey OFFileType
The type of the file.
An abstract class for storing objects in a dictionary.
Definition: OFDictionary.h:82
const OFFileAttributeKey OFFileOwnerAccountName
The account name of the owner of the file as an OFString.
OFFileManager * defaultManager()
Returns the default file manager.
Definition: OFFileManager.m:136
An abstract class for storing and changing objects in a dictionary.
Definition: OFMutableDictionary.h:46
const OFFileAttributeType OFFileTypeDirectory
A directory.
const OFFileAttributeType OFFileTypeBlockSpecial
A block special file.
A class for representing IRIs, URIs, URLs and URNs, for parsing them as well as accessing parts of th...
Definition: OFIRI.h:39
const OFFileAttributeType OFFileTypeCharacterSpecial
A character special file.
const OFFileAttributeKey OFFilePOSIXPermissions
The POSIX permissions of the file as an OFNumber.
A class for storing arbitrary data in an array.
Definition: OFData.h:45
const OFFileAttributeKey OFFileCreationDate
The creation date of the file as an OFDate.
const OFFileAttributeType OFFileTypeRegular
A regular file.
const OFFileAttributeType OFFileTypeUnknown
An unknown file type.
OFString * currentDirectoryPath
The path of the current working directory.
Definition: OFFileManager.h:287
const OFFileAttributeKey OFFileGroupOwnerAccountName
The account name of the group owner of the file as an OFString.
OFMutableDictionary * OFMutableFileAttributes
A mutable dictionary mapping keys of type OFFileAttributeKey to their attribute values.
Definition: OFFileManager.h:108
OFConstantString * OFFileAttributeType
The type of a file.
Definition: OFFileManager.h:95