ObjFW
|
A class which provides functions to read, write and manipulate files. More...
#import <ObjFW/OFFile.h>
Instance Methods | |
(id) | - initWithPath:mode: |
Initializes an already allocated OFFile. More... | |
(id) | - initWithFileDescriptor: |
Initializes an already allocated OFFile. More... | |
Instance Methods inherited from OFSeekableStream | |
(of_offset_t) | - seekToOffset:whence: |
Seeks to the specified absolute offset. More... | |
(of_offset_t) | - lowlevelSeekToOffset:whence: |
Seek the stream on the lowlevel. More... | |
Instance Methods inherited from OFStream | |
(bool) | - isAtEndOfStream |
Returns a boolean whether the end of the stream has been reached. More... | |
(size_t) | - readIntoBuffer:length: |
Reads at most size bytes from the stream into a buffer. More... | |
(void) | - readIntoBuffer:exactLength: |
Reads exactly the specified length bytes from the stream into a buffer. More... | |
(void) | - asyncReadIntoBuffer:length:target:selector: |
Asyncronously reads at most size bytes from the stream into a buffer. More... | |
(void) | - asyncReadIntoBuffer:exactLength:target:selector: |
Asyncronously reads exactly the specified length bytes from the stream into a buffer. More... | |
(void) | - asyncReadIntoBuffer:length:block: |
Asyncronously reads at most ref size bytes from the stream into a buffer. More... | |
(void) | - asyncReadIntoBuffer:exactLength:block: |
Asyncronously reads exactly the specified length bytes from the stream into a buffer. More... | |
(uint8_t) | - readInt8 |
Reads a uint8_t from the stream. More... | |
(uint16_t) | - readBigEndianInt16 |
Reads a uint16_t from the stream which is encoded in big endian. More... | |
(uint32_t) | - readBigEndianInt32 |
Reads a uint32_t from the stream which is encoded in big endian. More... | |
(uint64_t) | - readBigEndianInt64 |
Reads a uint64_t from the stream which is encoded in big endian. More... | |
(float) | - readBigEndianFloat |
Reads a float from the stream which is encoded in big endian. More... | |
(double) | - readBigEndianDouble |
Reads a double from the stream which is encoded in big endian. More... | |
(size_t) | - readBigEndianInt16sIntoBuffer:count: |
Reads the specified number of uint16_ts from the stream which are encoded in big endian. More... | |
(size_t) | - readBigEndianInt32sIntoBuffer:count: |
Reads the specified number of uint32_ts from the stream which are encoded in big endian. More... | |
(size_t) | - readBigEndianInt64sIntoBuffer:count: |
Reads the specified number of uint64_ts from the stream which are encoded in big endian. More... | |
(size_t) | - readBigEndianFloatsIntoBuffer:count: |
Reads the specified number of floats from the stream which are encoded in big endian. More... | |
(size_t) | - readBigEndianDoublesIntoBuffer:count: |
Reads the specified number of doubles from the stream which are encoded in big endian. More... | |
(uint16_t) | - readLittleEndianInt16 |
Reads a uint16_t from the stream which is encoded in little endian. More... | |
(uint32_t) | - readLittleEndianInt32 |
Reads a uint32_t from the stream which is encoded in little endian. More... | |
(uint64_t) | - readLittleEndianInt64 |
Reads a uint64_t from the stream which is encoded in little endian. More... | |
(float) | - readLittleEndianFloat |
Reads a float from the stream which is encoded in little endian. More... | |
(double) | - readLittleEndianDouble |
Reads a double from the stream which is encoded in little endian. More... | |
(size_t) | - readLittleEndianInt16sIntoBuffer:count: |
Reads the specified number of uint16_ts from the stream which are encoded in little endian. More... | |
(size_t) | - readLittleEndianInt32sIntoBuffer:count: |
Reads the specified number of uint32_ts from the stream which are encoded in little endian. More... | |
(size_t) | - readLittleEndianInt64sIntoBuffer:count: |
Reads the specified number of uint64_ts from the stream which are encoded in little endian. More... | |
(size_t) | - readLittleEndianFloatsIntoBuffer:count: |
Reads the specified number of floats from the stream which are encoded in little endian. More... | |
(size_t) | - readLittleEndianDoublesIntoBuffer:count: |
Reads the specified number of doubles from the stream which are encoded in little endian. More... | |
(OFDataArray *) | - readDataArrayWithCount: |
Reads the specified number of items with an item size of 1 from the stream and returns them in an OFDataArray. More... | |
(OFDataArray *) | - readDataArrayWithItemSize:count: |
Reads the specified number of items with the specified item size from the stream and returns them in an OFDataArray. More... | |
(OFDataArray *) | - readDataArrayTillEndOfStream |
Returns an OFDataArray with all the remaining data of the stream. More... | |
(OFString *) | - readStringWithLength: |
Reads a string with the specified length from the stream. More... | |
(OFString *) | - readStringWithLength:encoding: |
Reads a string with the specified encoding and length from the stream. More... | |
(nullable OFString *) | - readLine |
Reads until a newline, \0 or end of stream occurs. More... | |
(nullable OFString *) | - readLineWithEncoding: |
Reads with the specified encoding until a newline, \0 or end of stream occurs. More... | |
(void) | - asyncReadLineWithTarget:selector: |
Asyncronously reads until a newline, \0, end of stream or an exception occurs. More... | |
(void) | - asyncReadLineWithEncoding:target:selector: |
Asyncronously reads with the specified encoding until a newline, \0, end of stream or an exception occurs. More... | |
(void) | - asyncReadLineWithBlock: |
Asyncronously reads until a newline, \0, end of stream or an exception occurs. More... | |
(void) | - asyncReadLineWithEncoding:block: |
Asyncronously reads with the specified encoding until a newline, \0, end of stream or an exception occurs. More... | |
(nullable OFString *) | - tryReadLine |
Tries to read a line from the stream (see readLine) and returns nil if no complete line has been received yet. More... | |
(nullable OFString *) | - tryReadLineWithEncoding: |
Tries to read a line from the stream with the specified encoding (see readLineWithEncoding:) and returns nil if no complete line has been received yet. More... | |
(nullable OFString *) | - readTillDelimiter: |
Reads until the specified string or \0 is found or the end of stream occurs. More... | |
(nullable OFString *) | - readTillDelimiter:encoding: |
Reads until the specified string or \0 is found or the end of stream occurs. More... | |
(nullable OFString *) | - tryReadTillDelimiter: |
Tries to reads until the specified string or \0 is found or the end of stream (see readTillDelimiter:) and returns nil if not enough data has been received yet. More... | |
(nullable OFString *) | - tryReadTillDelimiter:encoding: |
Tries to read until the specified string or \0 is found or the end of stream occurs (see readTillDelimiter:encoding:) and returns nil if not enough data has been received yet. More... | |
(bool) | - isWriteBuffered |
Returns a boolen whether writes are buffered. More... | |
(void) | - setWriteBuffered: |
Enables or disables the write buffer. More... | |
(void) | - flushWriteBuffer |
Writes everythig in the write buffer to the stream. | |
(void) | - writeBuffer:length: |
Writes from a buffer into the stream. More... | |
(void) | - writeInt8: |
Writes a uint8_t into the stream. More... | |
(void) | - writeBigEndianInt16: |
Writes a uint16_t into the stream, encoded in big endian. More... | |
(void) | - writeBigEndianInt32: |
Writes a uint32_t into the stream, encoded in big endian. More... | |
(void) | - writeBigEndianInt64: |
Writes a uint64_t into the stream, encoded in big endian. More... | |
(void) | - writeBigEndianFloat: |
Writes a float into the stream, encoded in big endian. More... | |
(void) | - writeBigEndianDouble: |
Writes a double into the stream, encoded in big endian. More... | |
(size_t) | - writeBigEndianInt16s:count: |
Writes the specified number of uint16_ts into the stream, encoded in big endian. More... | |
(size_t) | - writeBigEndianInt32s:count: |
Writes the specified number of uint32_ts into the stream, encoded in big endian. More... | |
(size_t) | - writeBigEndianInt64s:count: |
Writes the specified number of uint64_ts into the stream, encoded in big endian. More... | |
(size_t) | - writeBigEndianFloats:count: |
Writes the specified number of floats into the stream, encoded in big endian. More... | |
(size_t) | - writeBigEndianDoubles:count: |
Writes the specified number of doubles into the stream, encoded in big endian. More... | |
(void) | - writeLittleEndianInt16: |
Writes a uint16_t into the stream, encoded in little endian. More... | |
(void) | - writeLittleEndianInt32: |
Writes a uint32_t into the stream, encoded in little endian. More... | |
(void) | - writeLittleEndianInt64: |
Writes a uint64_t into the stream, encoded in little endian. More... | |
(void) | - writeLittleEndianFloat: |
Writes a float into the stream, encoded in little endian. More... | |
(void) | - writeLittleEndianDouble: |
Writes a double into the stream, encoded in little endian. More... | |
(size_t) | - writeLittleEndianInt16s:count: |
Writes the specified number of uint16_ts into the stream, encoded in little endian. More... | |
(size_t) | - writeLittleEndianInt32s:count: |
Writes the specified number of uint32_ts into the stream, encoded in little endian. More... | |
(size_t) | - writeLittleEndianInt64s:count: |
Writes the specified number of uint64_ts into the stream, encoded in little endian. More... | |
(size_t) | - writeLittleEndianFloats:count: |
Writes the specified number of floats into the stream, encoded in little endian. More... | |
(size_t) | - writeLittleEndianDoubles:count: |
Writes the specified number of doubles into the stream, encoded in little endian. More... | |
(size_t) | - writeDataArray: |
Writes from an OFDataArray into the stream. More... | |
(size_t) | - writeString: |
Writes a string into the stream, without the trailing zero. More... | |
(size_t) | - writeString:encoding: |
Writes a string into the stream in the specified encoding, without the trailing zero. More... | |
(size_t) | - writeLine: |
Writes a string into the stream with a trailing newline. More... | |
(size_t) | - writeLine:encoding: |
Writes a string into the stream in the specified encoding with a trailing newline. More... | |
(size_t) | - writeFormat: |
Writes a formatted string into the stream. More... | |
(size_t) | - writeFormat:arguments: |
Writes a formatted string into the stream. More... | |
(bool) | - hasDataInReadBuffer |
Returns whether data is present in the internal read buffer. More... | |
(bool) | - isBlocking |
Returns whether the stream is in blocking mode. More... | |
(void) | - setBlocking: |
Enables or disables non-blocking I/O. More... | |
(int) | - fileDescriptorForReading |
Returns the file descriptor for the read end of the stream. More... | |
(int) | - fileDescriptorForWriting |
Returns the file descriptor for the write end of the stream. More... | |
(void) | - cancelAsyncRequests |
Cancels all pending asyncronous requests on the stream. More... | |
(void) | - unreadFromBuffer:length: |
"Reverses" a read operation, meaning the bytes from the specified buffer will be returned on the next read operation. More... | |
(void) | - close |
Closes the stream. | |
(size_t) | - lowlevelReadIntoBuffer:length: |
Performs a lowlevel read. More... | |
(void) | - lowlevelWriteBuffer:length: |
Performs a lowlevel write. More... | |
(bool) | - lowlevelIsAtEndOfStream |
Returns whether the lowlevel is at the end of the stream. More... | |
Instance Methods inherited from OFObject | |
(id) | - init |
Initializes an already allocated object. More... | |
(OFString *) | - className |
Returns the name of the object's class. More... | |
(OFString *) | - description |
Returns a description for the object. More... | |
(void *) | - allocMemoryWithSize: |
Allocates memory and stores it in the object's memory pool. More... | |
(void *) | - allocMemoryWithSize:count: |
Allocates memory for the specified number of items and stores it in the object's memory pool. More... | |
(nullable void *) | - resizeMemory:size: |
Resizes memory in the object's memory pool to the specified size. More... | |
(nullable void *) | - resizeMemory:size:count: |
Resizes memory in the object's memory pool to the specific number of items of the specified size. More... | |
(void) | - freeMemory: |
Frees allocated memory and removes it from the object's memory pool. More... | |
(void) | - dealloc |
Deallocates the object. More... | |
(void) | - performSelector:afterDelay: |
Performs the specified selector after the specified delay. More... | |
(void) | - performSelector:withObject:afterDelay: |
Performs the specified selector with the specified object after the specified delay. More... | |
(void) | - performSelector:withObject:withObject:afterDelay: |
Performs the specified selector with the specified objects after the specified delay. More... | |
(void) | - performSelector:onThread:waitUntilDone: |
Performs the specified selector on the specified thread. More... | |
(void) | - performSelector:onThread:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified object. More... | |
(void) | - performSelector:onThread:withObject:withObject:waitUntilDone: |
Performs the specified selector on the specified thread with the specified objects. More... | |
(void) | - performSelectorOnMainThread:waitUntilDone: |
Performs the specified selector on the main thread. More... | |
(void) | - performSelectorOnMainThread:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified object. More... | |
(void) | - performSelectorOnMainThread:withObject:withObject:waitUntilDone: |
Performs the specified selector on the main thread with the specified objects. More... | |
(void) | - performSelector:onThread:afterDelay: |
Performs the specified selector on the specified thread after the specified delay. More... | |
(void) | - performSelector:onThread:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified object after the specified delay. More... | |
(void) | - performSelector:onThread:withObject:withObject:afterDelay: |
Performs the specified selector on the specified thread with the specified objects after the specified delay. More... | |
(nullable id) | - forwardingTargetForSelector: |
This method is called when resolveClassMethod: or resolveInstanceMethod: returned false. It should return a target to which the message should be forwarded. More... | |
(void) | - doesNotRecognizeSelector: |
Handles messages which are not understood by the receiver. More... | |
(OFString *) | - stringBySerializing |
Creates a string by serializing the receiver. More... | |
Instance Methods inherited from <OFObject> | |
(bool) | - isKindOfClass: |
Returns a boolean whether the object of the specified kind. More... | |
(bool) | - isMemberOfClass: |
Returns a boolean whether the object is a member of the specified class. More... | |
(bool) | - respondsToSelector: |
Returns a boolean whether the object responds to the specified selector. More... | |
(nullable IMP) | - methodForSelector: |
Returns the implementation for the specified selector. More... | |
(nullable const char *) | - typeEncodingForSelector: |
Returns the type encoding for the specified selector. More... | |
(nullable id) | - performSelector: |
Performs the specified selector. More... | |
(nullable id) | - performSelector:withObject: |
Performs the specified selector with the specified object. More... | |
(nullable id) | - performSelector:withObject:withObject: |
Performs the specified selector with the specified objects. More... | |
(bool) | - isEqual: |
Checks two objects for equality. More... | |
(uint32_t) | - hash |
Calculates a hash for the object. More... | |
(id) | - retain |
Increases the retain count. More... | |
(unsigned int) | - retainCount |
Returns the retain count. More... | |
(void) | - release |
Decreases the retain count. More... | |
(id) | - autorelease |
Adds the object to the topmost OFAutoreleasePool of the thread's autorelease pool stack. More... | |
(id) | - self |
Returns the receiver. More... | |
(bool) | - isProxy |
Returns whether the object is a proxy object. More... | |
Instance Methods inherited from <OFCopying> | |
(id) | - copy |
Copies the object. More... | |
Class Methods | |
(instancetype) | + fileWithPath:mode: |
Creates a new OFFile with the specified path and mode. More... | |
(instancetype) | + fileWithFileDescriptor: |
Creates a new OFFile with the specified file descriptor. More... | |
(OFString *) | + currentDirectoryPath |
Returns the path fo the current working directory. More... | |
(bool) | + fileExistsAtPath: |
Checks whether a file exists at the specified path. More... | |
(bool) | + directoryExistsAtPath: |
Checks whether a directory exists at the specified path. More... | |
(bool) | + symbolicLinkExistsAtPath: |
Checks whether a symbolic link exists at the specified path. More... | |
(void) | + createDirectoryAtPath: |
Creates a directory at the specified path. More... | |
(void) | + createDirectoryAtPath:createParents: |
Creates a directory at the specified path. More... | |
(OFArray OF_GENERIC(OFString *) | + contentsOfDirectoryAtPath: |
Returns an array with the items in the specified directory. More... | |
(void) | + changeCurrentDirectoryPath: |
Changes the current working directory. More... | |
(of_offset_t) | + sizeOfFileAtPath: |
Returns the size of the specified file. More... | |
(OFDate *) | + accessTimeOfItemAtPath: |
Returns the last access time of the specified item. More... | |
(OFDate *) | + modificationTimeOfItemAtPath: |
Returns the last modification time of the specified item. More... | |
(OFDate *) | + statusChangeTimeOfItemAtPath: |
Returns the last status change time of the specified item. More... | |
(void) | + changePermissionsOfItemAtPath:permissions: |
Changes the permissions of an item. More... | |
(void) | + changeOwnerOfItemAtPath:owner:group: |
Changes the owner of an item. More... | |
(void) | + copyItemAtPath:toPath: |
Copies a file, directory or symlink (if supported by the OS). More... | |
(void) | + moveItemAtPath:toPath: |
Moves an item. More... | |
(void) | + removeItemAtPath: |
Removes the item at the specified path. More... | |
(void) | + linkItemAtPath:toPath: |
Creates a hard link for the specified item. More... | |
(void) | + createSymbolicLinkAtPath:withDestinationPath: |
Creates a symbolic link for an item. More... | |
(OFString *) | + destinationOfSymbolicLinkAtPath: |
Returns the destination of the symbolic link at the specified path. More... | |
Class Methods inherited from OFObject | |
(void) | + load |
A method which is called once when the class is loaded into the runtime. More... | |
(void) | + unload |
A method which is called when the class is unloaded from the runtime. More... | |
(void) | + initialize |
A method which is called the moment before the first call to the class is being made. More... | |
(id) | + alloc |
Allocates memory for an instance of the class and sets up the memory pool for the object. More... | |
(id) | + new |
Allocates memory for a new instance and calls init on it. More... | |
(Class) | + class |
Returns the class. More... | |
(OFString *) | + className |
Returns the name of the class as a string. More... | |
(bool) | + isSubclassOfClass: |
Returns a boolean whether the class is a subclass of the specified class. More... | |
(Class) | + superclass |
Returns the superclass of the class. More... | |
(bool) | + instancesRespondToSelector: |
Checks whether instances of the class respond to a given selector. More... | |
(bool) | + conformsToProtocol: |
Checks whether the class conforms to a given protocol. More... | |
(nullable IMP) | + instanceMethodForSelector: |
Returns the implementation of the instance method for the specified selector. More... | |
(nullable const char *) | + typeEncodingForInstanceSelector: |
Returns the type encoding of the instance method for the specified selector. More... | |
(OFString *) | + description |
Returns a description for the class, which is usually the class name. More... | |
(nullable IMP) | + replaceClassMethod:withMethodFromClass: |
Replaces a class method with a class method from another class. More... | |
(nullable IMP) | + replaceInstanceMethod:withMethodFromClass: |
Replaces an instance method with an instance method from another class. More... | |
(nullable IMP) | + replaceClassMethod:withImplementation:typeEncoding: |
Replaces or adds a class method. More... | |
(nullable IMP) | + replaceInstanceMethod:withImplementation:typeEncoding: |
Replaces or adds an instance method. More... | |
(void) | + inheritMethodsFromClass: |
Adds all methods from the specified class to the class that is the receiver. More... | |
(bool) | + resolveClassMethod: |
Try to resolve the specified class method. More... | |
(bool) | + resolveInstanceMethod: |
Try to resolve the specified instance method. More... | |
(id) | + copy |
Returns the class. More... | |
A class which provides functions to read, write and manipulate files.
Returns the last access time of the specified item.
path | The path to the file whose last access time should be returned |
+ (void) changeCurrentDirectoryPath: | (OFString*) | path |
Changes the current working directory.
path | The new directory to change to |
+ (void) changeOwnerOfItemAtPath: | (OFString*) | path | |
owner: | (OFString*) | owner | |
group: | (OFString*) | group | |
Changes the owner of an item.
This method is not available on some systems, most notably Windows.
path | The path to the item whose owner should be changed |
owner | The new owner for the item |
group | The new group for the item |
+ (void) changePermissionsOfItemAtPath: | (OFString*) | path | |
permissions: | (mode_t) | permissions | |
Changes the permissions of an item.
This method only changes the read-only flag on Windows.
path | The path to the item whose permissions should be changed |
permissions | The new permissions for the item |
Returns an array with the items in the specified directory.
.
and ..
are not part of the returned array.path | The path to the directory whose items should be returned |
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.
source | The file, directory or symlink to copy |
destination | The destination path |
+ (void) createDirectoryAtPath: | (OFString*) | path |
Creates a directory at the specified path.
path | The path of the directory |
+ (void) createDirectoryAtPath: | (OFString*) | path | |
createParents: | (bool) | createParents | |
Creates a directory at the specified path.
path | The path of the directory |
createParents | Whether to create the parents of the directory |
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, most notably Windows.
destination | The path of the item which should symbolically link to the source |
source | The path of the item for which a symbolic link should be created |
+ (OFString *) currentDirectoryPath |
Returns the path fo the current working directory.
Returns the destination of the symbolic link at the specified path.
path | The path to the symbolic link |
+ (bool) directoryExistsAtPath: | (OFString*) | path |
Checks whether a directory exists at the specified path.
path | The path to check |
+ (bool) fileExistsAtPath: | (OFString*) | path |
Checks whether a file exists at the specified path.
path | The path to check |
+ (instancetype) fileWithFileDescriptor: | (int) | fd |
Creates a new OFFile with the specified path and mode.
path | The path to the file to open as a string | ||||||||||||||||||||||||||
mode | The mode in which the file should be opened. Possible modes are:
|
- (id) initWithFileDescriptor: | (int) | fd |
Initializes an already allocated OFFile.
path | The path to the file to open as a string | ||||||||||||||||||||||||||
mode | The mode in which the file should be opened. Possible modes are:
|
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, most notably Windows.
source | The path of the item for which a link should be created |
destination | The path of the item which should link to the source |
Returns the last modification time of the specified item.
path | The path to the file whose last modification time should be returned |
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 copyItemAtPath:toPath: and the source removed using removeItemAtPath:.
source | The item to rename |
destination | The new name for the item |
+ (void) removeItemAtPath: | (OFString*) | path |
Removes the item at the specified path.
If the item at the specified path is a directory, it is removed recursively.
path | The path to the item which should be removed |
+ (of_offset_t) sizeOfFileAtPath: | (OFString*) | path |
Returns the size of the specified file.
path | The path to the file whose path should be returned |
Returns the last status change time of the specified item.
path | The path to the file whose last status change time should be returned |
+ (bool) symbolicLinkExistsAtPath: | (OFString*) | path |
Checks whether a symbolic link exists at the specified path.
path | The path to check |