Mercurial > projects > dstep
view dstep/foundation/NSFileManager.d @ 14:89f3c3ef1fd2
Added the Foundation framework
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Mon, 03 Aug 2009 15:23:15 +0200 |
parents | |
children | 7ff919f595d5 |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Aug 3, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.foundation.NSFileManager; import dstep.corefoundation.CFBase; import dstep.foundation.NSArray; import dstep.foundation.NSData; import dstep.foundation.NSDate; import dstep.foundation.NSDictionary; import dstep.foundation.NSDirectoryEnumerator; import dstep.foundation.NSEnumerator; import dstep.foundation.NSError; import dstep.foundation.NSNumber; import dstep.foundation.NSObject; import dstep.objc.bridge.Bridge; import dstep.objc.objc : id; import bindings = dstep.foundation.NSFileManager_bindings; const NSString NSFileType; const NSString NSFileTypeDirectory; const NSString NSFileTypeRegular; const NSString NSFileTypeSymbolicLink; const NSString NSFileTypeSocket; const NSString NSFileTypeCharacterSpecial; const NSString NSFileTypeBlockSpecial; const NSString NSFileTypeUnknown; const NSString NSFileSize; const NSString NSFileModificationDate; const NSString NSFileReferenceCount; const NSString NSFileDeviceIdentifier; const NSString NSFileOwnerAccountName; const NSString NSFileGroupOwnerAccountName; const NSString NSFilePosixPermissions; const NSString NSFileSystemNumber; const NSString NSFileSystemFileNumber; const NSString NSFileExtensionHidden; const NSString NSFileHFSCreatorCode; const NSString NSFileHFSTypeCode; const NSString NSFileImmutable; const NSString NSFileAppendOnly; const NSString NSFileCreationDate; const NSString NSFileOwnerAccountID; const NSString NSFileGroupOwnerAccountID; const NSString NSFileBusy; const NSString NSFileSystemSize; const NSString NSFileSystemFreeSize; const NSString NSFileSystemNodes; const NSString NSFileSystemFreeNodes; static this () { NSFileType = new NSString(bindings.NSFileType); NSFileTypeDirectory = new NSString(bindings.NSFileTypeDirectory); NSFileTypeRegular = new NSString(bindings.NSFileTypeRegular); NSFileTypeSymbolicLink = new NSString(bindings.NSFileTypeSymbolicLink); NSFileTypeSocket = new NSString(bindings.NSFileTypeSocket); NSFileTypeCharacterSpecial = new NSString(bindings.NSFileTypeCharacterSpecial); NSFileTypeBlockSpecial = new NSString(bindings.NSFileTypeBlockSpecial); NSFileTypeUnknown = new NSString(bindings.NSFileTypeUnknown); NSFileSize = new NSString(bindings.NSFileSize); NSFileModificationDate = new NSString(bindings.NSFileModificationDate); NSFileReferenceCount = new NSString(bindings.NSFileReferenceCount); NSFileDeviceIdentifier = new NSString(bindings.NSFileDeviceIdentifier); NSFileOwnerAccountName = new NSString(bindings.NSFileOwnerAccountName); NSFileGroupOwnerAccountName = new NSString(bindings.NSFileGroupOwnerAccountName); NSFilePosixPermissions = new NSString(bindings.NSFilePosixPermissions); NSFileSystemNumber = new NSString(bindings.NSFileSystemNumber); NSFileSystemFileNumber = new NSString(bindings.NSFileSystemFileNumber); NSFileExtensionHidden = new NSString(bindings.NSFileExtensionHidden); NSFileHFSCreatorCode = new NSString(bindings.NSFileHFSCreatorCode); NSFileHFSTypeCode = new NSString(bindings.NSFileHFSTypeCode); NSFileImmutable = new NSString(bindings.NSFileImmutable); NSFileAppendOnly = new NSString(bindings.NSFileAppendOnly); NSFileCreationDate = new NSString(bindings.NSFileCreationDate); NSFileOwnerAccountID = new NSString(bindings.NSFileOwnerAccountID); NSFileGroupOwnerAccountID = new NSString(bindings.NSFileGroupOwnerAccountID); NSFileBusy = new NSString(bindings.NSFileBusy); NSFileSystemSize = new NSString(bindings.NSFileSystemSize); NSFileSystemFreeSize = new NSString(bindings.NSFileSystemFreeSize); NSFileSystemNodes = new NSString(bindings.NSFileSystemNodes); NSFileSystemFreeNodes = new NSString(bindings.NSFileSystemFreeNodes); } class NSFileManager : NSObject { mixin ObjcWrap; static NSFileManager defaultManager () { return invokeObjcSelfClass!(NSFileManager, "defaultManager"return result is this.objcObject ? this : (result !is null ? new NSFileManager(result) : null); } void setDelegate (Object delegate_) { return invokeObjcSelf!(void, "setDelegate:", Object)(delegate_); } Object delegate_ () { return invokeObjcSelf!(Object, "delegate"); } bool setAttributes (NSDictionary attributes, NSString path, NSError** error) { return invokeObjcSelf!(bool, "setAttributes:ofItemAtPath:error:", NSDictionary, NSString, NSError**)(attributes, path, error); } bool createDirectoryAtPath (NSString path, bool createIntermediates, NSDictionary attributes, NSError** error) { return invokeObjcSelf!(bool, "createDirectoryAtPath:withIntermediateDirectories:attributes:error:", NSString, bool, NSDictionary, NSError**)(path, createIntermediates, attributes, error); } NSArray contentsOfDirectoryAtPath (NSString path, NSError** error) { return invokeObjcSelf!(NSArray, "contentsOfDirectoryAtPath:error:", NSString, NSError**)(path, error); } NSArray subpathsOfDirectoryAtPath (NSString path, NSError** error) { return invokeObjcSelf!(NSArray, "subpathsOfDirectoryAtPath:error:", NSString, NSError**)(path, error); } NSDictionary attributesOfItemAtPath (NSString path, NSError** error) { return invokeObjcSelf!(NSDictionary, "attributesOfItemAtPath:error:", NSString, NSError**)(path, error); } NSDictionary attributesOfFileSystemForPath (NSString path, NSError** error) { return invokeObjcSelf!(NSDictionary, "attributesOfFileSystemForPath:error:", NSString, NSError**)(path, error); } bool createSymbolicLinkAtPath (NSString path, NSString destPath, NSError** error) { return invokeObjcSelf!(bool, "createSymbolicLinkAtPath:withDestinationPath:error:", NSString, NSString, NSError**)(path, destPath, error); } NSString destinationOfSymbolicLinkAtPath (NSString path, NSError** error) { return invokeObjcSelf!(NSString, "destinationOfSymbolicLinkAtPath:error:", NSString, NSError**)(path, error); } bool copyItemAtPath (NSString srcPath, NSString dstPath, NSError** error) { return invokeObjcSelf!(bool, "copyItemAtPath:toPath:error:", NSString, NSString, NSError**)(srcPath, dstPath, error); } bool moveItemAtPath (NSString srcPath, NSString dstPath, NSError** error) { return invokeObjcSelf!(bool, "moveItemAtPath:toPath:error:", NSString, NSString, NSError**)(srcPath, dstPath, error); } bool linkItemAtPath (NSString srcPath, NSString dstPath, NSError** error) { return invokeObjcSelf!(bool, "linkItemAtPath:toPath:error:", NSString, NSString, NSError**)(srcPath, dstPath, error); } bool removeItemAtPath (NSString path, NSError** error) { return invokeObjcSelf!(bool, "removeItemAtPath:error:", NSString, NSError**)(path, error); } NSDictionary fileAttributesAtPath (NSString path, bool yorn) { return invokeObjcSelf!(NSDictionary, "fileAttributesAtPath:traverseLink:", NSString, bool)(path, yorn); } bool changeFileAttributes (NSDictionary attributes, NSString path) { return invokeObjcSelf!(bool, "changeFileAttributes:atPath:", NSDictionary, NSString)(attributes, path); } NSArray directoryContentsAtPath (NSString path) { return invokeObjcSelf!(NSArray, "directoryContentsAtPath:", NSString)(path); } NSDictionary fileSystemAttributesAtPath (NSString path) { return invokeObjcSelf!(NSDictionary, "fileSystemAttributesAtPath:", NSString)(path); } NSString pathContentOfSymbolicLinkAtPath (NSString path) { return invokeObjcSelf!(NSString, "pathContentOfSymbolicLinkAtPath:", NSString)(path); } bool createSymbolicLinkAtPath (NSString path, NSString otherpath) { return invokeObjcSelf!(bool, "createSymbolicLinkAtPath:pathContent:", NSString, NSString)(path, otherpath); } bool createDirectoryAtPath (NSString path, NSDictionary attributes) { return invokeObjcSelf!(bool, "createDirectoryAtPath:attributes:", NSString, NSDictionary)(path, attributes); } bool linkPath (NSString src, NSString dest, Object handler) { return invokeObjcSelf!(bool, "linkPath:toPath:handler:", NSString, NSString, Object)(src, dest, handler); } bool copyPath (NSString src, NSString dest, Object handler) { return invokeObjcSelf!(bool, "copyPath:toPath:handler:", NSString, NSString, Object)(src, dest, handler); } bool movePath (NSString src, NSString dest, Object handler) { return invokeObjcSelf!(bool, "movePath:toPath:handler:", NSString, NSString, Object)(src, dest, handler); } bool removeFileAtPath (NSString path, Object handler) { return invokeObjcSelf!(bool, "removeFileAtPath:handler:", NSString, Object)(path, handler); } NSString currentDirectoryPath () { return invokeObjcSelf!(NSString, "currentDirectoryPath"); } bool changeCurrentDirectoryPath (NSString path) { return invokeObjcSelf!(bool, "changeCurrentDirectoryPath:", NSString)(path); } bool fileExistsAtPath (NSString path) { return invokeObjcSelf!(bool, "fileExistsAtPath:", NSString)(path); } bool fileExistsAtPath (NSString path, bool* isDirectory) { return invokeObjcSelf!(bool, "fileExistsAtPath:isDirectory:", NSString, bool*)(path, isDirectory); } bool isReadableFileAtPath (NSString path) { return invokeObjcSelf!(bool, "isReadableFileAtPath:", NSString)(path); } bool isWritableFileAtPath (NSString path) { return invokeObjcSelf!(bool, "isWritableFileAtPath:", NSString)(path); } bool isExecutableFileAtPath (NSString path) { return invokeObjcSelf!(bool, "isExecutableFileAtPath:", NSString)(path); } bool isDeletableFileAtPath (NSString path) { return invokeObjcSelf!(bool, "isDeletableFileAtPath:", NSString)(path); } bool contentsEqualAtPath (NSString path1, NSString path2) { return invokeObjcSelf!(bool, "contentsEqualAtPath:andPath:", NSString, NSString)(path1, path2); } NSString displayNameAtPath (NSString path) { return invokeObjcSelf!(NSString, "displayNameAtPath:", NSString)(path); } NSArray componentsToDisplayForPath (NSString path) { return invokeObjcSelf!(NSArray, "componentsToDisplayForPath:", NSString)(path); } NSDirectoryEnumerator enumeratorAtPath (NSString path) { return invokeObjcSelf!(NSDirectoryEnumerator, "enumeratorAtPath:", NSString)(path); } NSArray subpathsAtPath (NSString path) { return invokeObjcSelf!(NSArray, "subpathsAtPath:", NSString)(path); } NSData contentsAtPath (NSString path) { return invokeObjcSelf!(NSData, "contentsAtPath:", NSString)(path); } bool createFileAtPath (NSString path, NSData data, NSDictionary attr) { return invokeObjcSelf!(bool, "createFileAtPath:contents:attributes:", NSString, NSData, NSDictionary)(path, data, attr); } char* fileSystemRepresentationWithPath (NSString path) { return invokeObjcSelf!(char*, "fileSystemRepresentationWithPath:", NSString)(path); } NSString stringWithFileSystemRepresentation (char* str, NSUInteger len) { return invokeObjcSelf!(NSString, "stringWithFileSystemRepresentation:length:", char*, NSUInteger)(str, len); } } class NSDirectoryEnumerator : NSEnumerator { mixin ObjcWrap; NSDictionary fileAttributes () { return invokeObjcSelf!(NSDictionary, "fileAttributes"); } NSDictionary directoryAttributes () { return invokeObjcSelf!(NSDictionary, "directoryAttributes"); } void skipDescendents () { return invokeObjcSelf!(void, "skipDescendents"); } } template TNSFileManagerFileOperationAdditions () { bool fileManager (NSFileManager fileManager, NSString srcPath, NSString dstPath); bool fileManager (NSFileManager fileManager, NSError error, NSString srcPath, NSString dstPath); bool fileManager (NSFileManager fileManager, NSString srcPath, NSString dstPath); bool fileManager (NSFileManager fileManager, NSError error, NSString srcPath, NSString dstPath); bool fileManager (NSFileManager fileManager, NSString srcPath, NSString dstPath); bool fileManager (NSFileManager fileManager, NSError error, NSString srcPath, NSString dstPath); bool fileManager (NSFileManager fileManager, NSString path); bool fileManager (NSFileManager fileManager, NSError error, NSString path); } template TNSCopyLinkMoveHandler () { bool fileManager (NSFileManager fm, NSDictionary errorInfo); void fileManager (NSFileManager fm, NSString path); } template TNSFileAttributes () { ulong fileSize () { return invokeObjcSelf!(ulong, "fileSize"); } NSDate fileModificationDate () { return invokeObjcSelf!(NSDate, "fileModificationDate"); } NSString fileType () { return invokeObjcSelf!(NSString, "fileType"); } NSUInteger filePosixPermissions () { return invokeObjcSelf!(NSUInteger, "filePosixPermissions"); } NSString fileOwnerAccountName () { return invokeObjcSelf!(NSString, "fileOwnerAccountName"); } NSString fileGroupOwnerAccountName () { return invokeObjcSelf!(NSString, "fileGroupOwnerAccountName"); } NSInteger fileSystemNumber () { return invokeObjcSelf!(NSInteger, "fileSystemNumber"); } NSUInteger fileSystemFileNumber () { return invokeObjcSelf!(NSUInteger, "fileSystemFileNumber"); } bool fileExtensionHidden () { return invokeObjcSelf!(bool, "fileExtensionHidden"); } uint fileHFSCreatorCode () { return invokeObjcSelf!(uint, "fileHFSCreatorCode"); } uint fileHFSTypeCode () { return invokeObjcSelf!(uint, "fileHFSTypeCode"); } bool fileIsImmutable () { return invokeObjcSelf!(bool, "fileIsImmutable"); } bool fileIsAppendOnly () { return invokeObjcSelf!(bool, "fileIsAppendOnly"); } NSDate fileCreationDate () { return invokeObjcSelf!(NSDate, "fileCreationDate"); } NSNumber fileOwnerAccountID () { return invokeObjcSelf!(NSNumber, "fileOwnerAccountID"); } NSNumber fileGroupOwnerAccountID () { return invokeObjcSelf!(NSNumber, "fileGroupOwnerAccountID"); } }