Swift

Swift:またまた無駄な動きを発見

前々からおかしいと思っていて、これまたずっと無視してきたのですが、コード量を少なくするために修正しました。

他の調査作業が行き詰まったので、filepathの処理をもっと短く処理できるはずと修正しはじめたのはいいですが、、動く状態に戻すまで2時間はかかってしまいました。やれやれです。

これは、以前、どこかにメモったかもしれません。しかし、ブログからは見つけきれませんでした。それで、改めてメモします。

機能

  • ファイルパスからファイル名と拡張子(ファイルタイプ)を抽出して返します。
  • ファイル名は、ファイルの場合、拡張子を含みます。
  • ファイルパスから実際にフォルダ(ディレクトリ)あるいはファイルが存在するか調べて、結果を返します。

コード

filepathからファイル名・フォルダ名とファイルタイプを抽出する
パラメタ
1. pfilepath:ファイルパス
2. pcheck:指示
①pcheck=”yes”:filepathのチェックを行う
②pcheck=”no”:filepathのチェックを行わない。
返り値
1. rType:ファイルタイプ(拡張子)
2. rName:ファイル名(拡張子有)又はフォルダ名
3. rCheck:
①rCheck=”folder”:ディレクトリ実在
②rCheck=”file”:ファイル実在
③rCheck=”NA”:filepathの実態が存在しない。
④rCheck=””:filepath実在チェックせず
 func CallGetFileInfo(pfilepath:String, pcheck:String) -> (rCheck:String, rName:String, rType:String) {
var wCheck:String = “”  
  var wName:String  = NSFileManager.defaultManager().displayNameAtPath(pfilepath)
  var wType:String  = pfilepath.pathExtension 
  if pcheck != “yes”  { return (wCheck, wName, wType) } 
  else { } 
  wCheck      = CallCheckFilepath(pfilepath)  
  return (wCheck, wName, wType)  
}

指定されたFilepathが存在するかどうかチェックする
func CallCheckFilepath(filepath:String) -> String {
var isDir : ObjCBool = true        
 var wBool:Bool = NSFileManager().fileExistsAtPath(filepath, isDirectory:&isDir)
 if  wBool == true {      
  if isDir.boolValue == true  { return “folder” } 
  else  { return “file” }  
 } else    { return “NA” } 
  

Categories: Swift, 技術