プログラムを書こう!

実務や自作アプリ開発で習得した役に立つソフトウェア技術情報を発信するブログ

SwiftのOneDrive APIでファイルを移動する。

この記事は2018年07月05日に投稿しました。
この記事は2018年07月21日に更新しました。

f:id:paveway:20190914064630j:plain

目次

  1. はじめに
  2. ファイル移動処理
  3. おわりに

本気ではじめるiPhoneアプリ作り Xcode 9.x+Swift 4.x対応 (「ヤフー黒帯」シリーズ)

本気ではじめるiPhoneアプリ作り Xcode 9.x+Swift 4.x対応 (「ヤフー黒帯」シリーズ)

1. はじめに

こんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。

OneDrive APIの移動処理について説明します。
OneDrive APIの移動はコピーと同様、ファイルもディレクトリも同じメソッドで行えます。

ドキュメント"Items in the OneDrive SDK for iOS"の"Moving and updating an Item"を参考にしました。

目次へ

2. ファイル移動処理

OneDrive APIの移動は、updateメソッドで行います。
引数はシンプルに、移動元のIDと移動先のIDになります。

移動元がディレクトリの場合、ディレクトリが移動されます。
ディレクトリの場合、配下のディレクトリやファイルごと移動されます。
移動先に移動元と同名のファイルやディレクトリが存在する場合、エラーになります。

コピーと異なり、"root"ディレクトリへの移動も、updateメソッドで可能です。

import OneDriveSDK

/**
 ディレクトリやファイルを移動します。

 - Parameter fromId: 移動元のディレクトリまたはファイルのID
 - Parameter toId: 移動先のディレクトリのID
 */
func moveFile(_ fromId: String, toId: String) {
    // 認証済みクライアントオブジェクトを取得します。
    guard let client = ODClient.loadCurrent() else {
        // 認証済みクライアントオブジェクトが取得できない場合、処理を終了します。
        // 念のためのチェックです。
        // 必要に応じてエラー処理を行ってください。
        return
    }

   // 移動を実行します。
    let updatedItem = ODItem()
    updatedItem.id = fromId
    updatedItem.parentReference = ODItemReference()
    updatedItem.parentReference.id = toId
    client.drive().items(fromId).request().update(updatedItem, withCompletion: { (item: ODItem?, error: Error?) -> Void in
        if let error = error {
            // エラーの場合、処理を終了します。
            // 必要に応じてエラー処理を行ってください。
            return
        }
        
        // 正常終了の場合の処理を記述してください。
    })
}

目次へ

3. おわりに

移動は用意されたupdateメソッドで、"root"ディレクトリもサブディレクトリも実行できて助かりました。
ただし、メソッド名が"update"なのは少し違和感があります。

お仕事決まれば全額キャッシュバック!転職特化型Ruby実践研修【ポテパンキャンプ】

本気ではじめるiPhoneアプリ作り Xcode 9.x+Swift 4.x対応 (「ヤフー黒帯」シリーズ)

本気ではじめるiPhoneアプリ作り Xcode 9.x+Swift 4.x対応 (「ヤフー黒帯」シリーズ)

紹介している一部の記事のコードはGitlabで公開しています。
興味のある方は覗いてみてください。

目次へ


私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。
弊社製品のハイブリッドOS Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。
私自身はiOSモバイルアプリウィンドウズアプリを得意としております。
ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。

また一緒に働きたい技術者の方も随時募集中です。
興味がありましたらご連絡ください。

EMAIL : info-nr@newral.co.jp / m-futamata@newral.co.jp
TEL : 042-523-3663
FAX : 042-540-1688

目次へ