macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

performFileOperation:source:destination:files:tag:

INDEX>AppKit>NSWorkspace

ファイル操作を実行します

Objective-C

- (BOOL)performFileOperation:(NSString *)operation
                      source:(NSString *)source
                 destination:(NSString *)destination
                       files:(NSArray *)files
                         tag:(NSInteger *)tag

Swift

func performFileOperation(_ operation: String,
                   source source: String,
              destination destination: String,
                    files files: [AnyObject],
                      tag tag: UnsafeMutablePointer<Int>) -> Bool

解説

ファイル操作を実行します。

操作がうまくいけばYESを返します。
そうでなければNOを返します。
NSWorkspaceの通知センターにNSWorkspaceDidPerformFileOperationNotificationをポストします。

返り値

( BOOL )

実行できたかYES/NO

引数

( NSString * )operation

操作
● NSWorkspaceMoveOperation 移動
● NSWorkspaceCopyOperation コピー
● NSWorkspaceLinkOperation リンク
● NSWorkspaceCompressOperation 圧縮
● NSWorkspaceDecompressOperation 展開
● NSWorkspaceEncryptOperation
● NSWorkspaceDecryptOperation
● NSWorkspaceDestroyOperation
● NSWorkspaceRecycleOperation
● NSWorkspaceDuplicateOperation 複製

( NSString * )source

実行元

( NSString * )destination

実行先

( NSArray * )files

ファイル

( int * )tag

タグ
操作されたファイルの数が返される。操作が失敗したなら、負の数。

フレームワーク

ApplicationKit

クラス

NSWorkspace

使用可能

10.0

参照

更新時のバージョン

OS X 10.10

関連記事(外部サイト)

例文

#import "SetImage.h"

@implementation SetImage

- (IBAction)set:(id)sender
{
NSString *str1 = @"~/";
NSString *str2 = @"~/Documents/";
NSArray *arr1 = [NSArray arrayWithObjects:@"testWritetext.txt", nil];
int tagCount = 0;
NSWorkspace *wrkSpc =[NSWorkspace sharedWorkspace];

if([wrkSpc performFileOperation:NSWorkspaceCopyOperation 
                    source:[str1 stringByExpandingTildeInPath]
                    destination:[str2 stringByExpandingTildeInPath]
                    files:arr1 
                    tag: &tagCount ])
	{
    NSLog(@"YES");
    }else{
    NSLog(@"NO");
    }
NSLog(@"tagCount %d",tagCount);
}

@end

Swift

    //NSWorkspace performFileOperation
    @IBAction func function013(sender: AnyObject) {
        //デスクトップの「testFilename」というファイルを
        //Documentsに移動する
        var tagCount : Int = 0
        let theWorkspace : NSWorkspace = NSWorkspace.sharedWorkspace()
        let sourcePath : NSString = "~/Desktop/".stringByExpandingTildeInPath
        let destiPath : NSString = "~/Documents/".stringByExpandingTildeInPath
        let result : Bool = theWorkspace.performFileOperation(NSWorkspaceMoveOperation,
                    source: sourcePath,
                    destination: destiPath,
                    files: ["testFilename"],
                    tag: &tagCount
                )
            NSLog("%d",tagCount)
        if result {
            NSLog("OK")
        }else{
            NSLog("NG")
        }
    }