Swift

Swift:システムファイルとして除外するもの

アプリの機能に依存すると思いますが、写真ファイル以外に除外するフォルダを策定しました。

開発中のアプリは、写真があるフォルダを識別しているので、たとえばゴミ箱のような関係のないフォルダ(EXIFをrewriteできないようなフォルダ)をアクセスするとパフォーマンスが悪くなります。特にシステムフォルダや写真アプリのフォルダはネストが深く、ファイル数も多いので、これを許容するとパフォーマンスが悪くなります。

それで、次のフォルダを除外することにしました。

  • フォルダは配列で定義し、initで値を設定する必要がありました。また、letはNGだったので、varで定義しました。
  • 青文字で示したものはNSHomeDirectoryForUserで調べて下さい。
  • PhotosとiPhotoはmasterだけを使うので、ほかのフォルダは除外することにしました。
  • Photosは”写真”がpathの名称になっていますが、英語の場合は”Photos”でいいかどうか、確認が必要です。
  • このほかに、.で始まる隠しフォルダ、$で始まるゴミ箱を除去しています。
  • これらのフォルダを除外する前は永久ループにはまったように見え、使用に耐えませんでしたが、対処後はまあまあです(Photosとほぼ同等)。

var syspath:[String] = []

override init() {
syspath  = [] 
syspath.append(NSSearchPathForDirectoriesInDomains(.ApplicationDirectory, .UserDomainMask, true)[0] as! String)
syspath.append(NSSearchPathForDirectoriesInDomains(.LibraryDirectory, .UserDomainMask, true)[0] as! String)
syspath.append(NSSearchPathForDirectoriesInDomains(.TrashDirectory, .UserDomainMask, true)[0] as! String)
syspath.append(NSSearchPathForDirectoriesInDomains(.MusicDirectory, .UserDomainMask, true)[0] as! String)
syspath.append(NSHomeDirectory()+”/Pictures/iChat Icons”)
syspath.append(NSHomeDirectory()+”/Pictures/写真 Library.photoslibrary/Previews”)
syspath.append(NSHomeDirectory()+”/Pictures/写真 Library.photoslibrary/resources”)
syspath.append(NSHomeDirectory()+”/Pictures/写真 Library.photoslibrary/Thumbnails”)
syspath.append(NSHomeDirectory()+”/Pictures/写真 Library.photoslibrary/resources”)
syspath.append(NSHomeDirectory()+”/Pictures/写真 Library.photoslibrary/Database”)

syspath.append(NSHomeDirectory()+”/Pictures/iPhoto Library.photolibrary/Previews”)
syspath.append(NSHomeDirectory()+”/Pictures/iPhoto Library.photolibrary/Thumbnails”)
syspath.append(NSHomeDirectory()+”/Pictures/iPhoto Library.photolibrary/Database”)

syspath.append(NSHomeDirectory()+”/Pictures/Photos Library.photoslibrary/Previews”)
syspath.append(NSHomeDirectory()+”/Pictures/Photos Library.photoslibrary/resources”)
syspath.append(NSHomeDirectory()+”/Pictures/Photos Library.photoslibrary/Thumbnails”)
syspath.append(NSHomeDirectory()+”/Pictures/Photos Library.photoslibrary/resources”)
syspath.append(NSHomeDirectory()+”/Pictures/Photos Library.photoslibrary/Database”)
}

 

Categories: Swift, 技術