Differences From Artifact [85d228e919]:
- File src/OFFileManager.h — part of check-in [5a31a537a1] at 2017-02-04 17:45:33 on branch trunk — Fix typos in comments and strings found by aspell (user: js, size: 8312) [annotate] [blame] [check-ins using]
To Artifact [89d56ff83d]:
- File
src/OFFileManager.h
— part of check-in
[4af49a13c3]
at
2017-05-07 20:10:13
on branch trunk
— Small code style change
Casts are now written like types in variable declarations. (user: js, size: 8353) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
28 29 30 31 32 33 34 | * @brief A class which provides management for files, e.g. reading contents of * directories, deleting files, renaming files, etc. */ @interface OFFileManager: OFObject /*! * @brief Returns the default file manager. */ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 | * @brief A class which provides management for files, e.g. reading contents of * directories, deleting files, renaming files, etc. */ @interface OFFileManager: OFObject /*! * @brief Returns the default file manager. */ + (OFFileManager *)defaultManager; /*! * @brief Returns the path for the current working directory. * * @return The path of the current working directory */ - (OFString *)currentDirectoryPath; /*! * @brief Checks whether a file exists at the specified path. * * @param path The path to check * @return A boolean whether there is a file at the specified path */ - (bool)fileExistsAtPath: (OFString *)path; /*! * @brief Checks whether a directory exists at the specified path. * * @param path The path to check * @return A boolean whether there is a directory at the specified path */ - (bool)directoryExistsAtPath: (OFString *)path; #if defined(OF_HAVE_SYMLINK) || defined(OF_WINDOWS) /*! * @brief Checks whether a symbolic link exists at the specified path. * * @param path The path to check * @return A boolean whether there is a symbolic link at the specified path */ - (bool)symbolicLinkExistsAtPath: (OFString *)path; #endif /*! * @brief Creates a directory at the specified path. * * @param path The path of the directory to create */ - (void)createDirectoryAtPath: (OFString *)path; /*! * @brief Creates a directory at the specified path. * * @param path The path of the directory to create * @param createParents Whether to create the parents of the directory */ - (void)createDirectoryAtPath: (OFString *)path createParents: (bool)createParents; /*! * @brief Returns an array with the items in the specified directory. * * @note `.` and `..` are not part of the returned array. * * @param path The path to the directory whose items should be returned * @return An array of OFString with the items in the specified directory */ - (OFArray OF_GENERIC(OFString *) *)contentsOfDirectoryAtPath: (OFString *)path; /*! * @brief Changes the current working directory. * * @param path The new directory to change to */ - (void)changeCurrentDirectoryPath: (OFString *)path; /*! * @brief Returns the size of the specified file. * * @param path The path to the file whose size should be returned * * @return The size of the specified file */ - (of_offset_t)sizeOfFileAtPath: (OFString *)path; /*! * @brief Returns the last access time of the specified item. * * @param path The path to the item whose last access time should be returned * * @return The last access time of the specified item */ - (OFDate *)accessTimeOfItemAtPath: (OFString *)path; /*! * @brief Returns the last modification time of the specified item. * * @param path The path to the item whose last modification time should be * returned * * @return The last modification time of the specified item */ - (OFDate *)modificationTimeOfItemAtPath: (OFString *)path; /*! * @brief Returns the last status change time of the specified item. * * @param path The path to the item whose last status change time should be * returned * * @return The last status change time of the specified item */ - (OFDate *)statusChangeTimeOfItemAtPath: (OFString *)path; #ifdef OF_HAVE_CHMOD /*! * @brief Returns the permissions of the specified item. * * @param path The path to the item whose permissions should be returned * * @return The permissions of the specified item */ - (mode_t)permissionsOfItemAtPath: (OFString *)path; /*! * @brief Changes the permissions of an item. * * This method only changes the read-only flag on Windows. * * @param path The path to the item whose permissions should be changed * @param permissions The new permissions for the item */ - (void)changePermissionsOfItemAtPath: (OFString *)path permissions: (mode_t)permissions; #endif #ifdef OF_HAVE_CHOWN /*! * @brief Get the owner and group of the specified item. * * @param owner A pointer to an `OFString *` to store the owner, or nil * @param group A pointer to an `OFString *` to store the group, or nil * @param path The path to the item whose owner and group should be retrieved */ - (void)getOwner: (OFString *__autoreleasing _Nonnull *_Nullable)owner group: (OFString *__autoreleasing _Nonnull *_Nullable)group ofItemAtPath: (OFString *)path; /*! * @brief Changes the owner of an item. * * This method is not available on some systems, most notably Windows. * * @param path The path to the item whose owner should be changed * @param owner The new owner for the item * @param group The new group for the item */ - (void)changeOwnerOfItemAtPath: (OFString *)path owner: (OFString *)owner group: (OFString *)group; #endif /*! * @brief Copies a file, directory or symlink (if supported by the OS). * * The destination path must be a full path, which means it must include the * name of the item. * * If an item already exists, the copy operation fails. This is also the case * if a directory is copied and an item already exists in the destination * directory. * * @param source The file, directory or symlink to copy * @param destination The destination path */ - (void)copyItemAtPath: (OFString *)source toPath: (OFString *)destination; /*! * @brief Moves an item. * * The destination path must be a full path, which means it must include the * name of the item. * * If the destination is on a different logical device, the source will be * copied to the destination using @ref copyItemAtPath:toPath: and the source * removed using @ref removeItemAtPath:. * * @param source The item to rename * @param destination The new name for the item */ - (void)moveItemAtPath: (OFString *)source toPath: (OFString *)destination; /*! * @brief Removes the item at the specified path. * * If the item at the specified path is a directory, it is removed recursively. * * @param path The path to the item which should be removed */ - (void)removeItemAtPath: (OFString *)path; #if defined(OF_HAVE_LINK) || defined(OF_WINDOWS) /*! * @brief Creates a hard link for the specified item. * * The destination path must be a full path, which means it must include the * name of the item. * * This method is not available on some systems. * * @param source The path to the item for which a link should be created * @param destination The path to the item which should link to the source */ - (void)linkItemAtPath: (OFString *)source toPath: (OFString *)destination; #endif #if defined(OF_HAVE_SYMLINK) || defined(OF_WINDOWS) /*! * @brief Creates a symbolic link for an item. * * The destination path must be a full path, which means it must include the * name of the item. * * This method is not available on some systems. * * @note On Windows, this requires at least Windows Vista and administrator * privileges! * * @param destination The path to the item which should symbolically link to the * source * @param source The path to the item for which a symbolic link should be * created */ - (void)createSymbolicLinkAtPath: (OFString *)destination withDestinationPath: (OFString *)source; #endif #if defined(OF_HAVE_READLINK) || defined(OF_WINDOWS) /*! * @brief Returns the destination of the symbolic link at the specified path. * * @param path The path to the symbolic link * * @note On Windows, at least Windows Vista is required. * * @return The destination of the symbolic link at the specified path */ - (OFString *)destinationOfSymbolicLinkAtPath: (OFString *)path; #endif @end OF_ASSUME_NONNULL_END |