2016-12-10 6 views
1

アプリケーションの一時フォルダにフォルダ構造を作成したいと思います。一時フォルダに複雑なフォルダ構造を作成する方法

フォルダの構造は次のようになります。

  • 強度
    • iPhone省略記号

    • コンポジット

私はFileManagerを使用してディレクトリを作成しています。

class func createBaseDirectory() { 

let filemgr = FileManager.default 

let dirPaths = filemgr.urls(for: .documentDirectory, in: .userDomainMask) 

let docsURL = dirPaths[0] 

let newDir = docsURL.appendingPathComponent("iPhone").path 

do { 
    try filemgr.createDirectory(atPath: newDir, withIntermediateDirectories: true, attributes: nil) 
} catch let error as NSError { 
    print("Error: \(error.localizedDescription)") 
} 
} 

しかし、この方法は、私は、コードスニペットのかなり多くを複製する必要がありefficient.Becauseではありません。 Swift言語には、フォルダ構造を作成するための便利な方法がいくつかありますか?

+1

フォルダ名の配列を関数に渡し、ループを使用して各フォルダを作成します。 –

答えて

1

私はスウィフト遊び場で、次の(マーティンRが示唆したように同じ)を作成し、正常に動作するようです:

import Foundation 

let fm = FileManager.default 
let baseUrl = fm.urls(for: .documentDirectory, in: .userDomainMask).first! 

let subPaths = [ 
    "iPhone/Intensity/Positive", 
    "iPhone/Intensity/Negative", 
    "iPhone/Elipses/Positive", 
    "iPhone/Elipses/Negative", 
    "iPhone/Composite/Negative", 
    "iPhone/Composite/Negative", 
] 

subPaths.forEach { subPath in 
    let url = baseUrl.appendingPathComponent(subPath) 
    do { 
     try fm.createDirectory(at: url, withIntermediateDirectories: true, attributes: nil) 
     print("path created: \(url)") 
    } catch let error { 
     print("error: \(error)") 
    } 
} 

あなたは再利用のために、このコードを使用して、NSFileManagerの拡張を作成することができます。

関連する問題