2017-12-20 7 views
0

私はSwift 4、Xcode 9、および開発対象のiOS 11.0を使用しています。appendingPathComponent 'is unavailable:代わりにURLにappendingPathComponentを使用してください。

私は、カスタムフォルダ(MyFolder)をpath変数に追加しようとしています。

let outputFilePath = (NSTemporaryDirectory() as NSString).appending("MyFolder").appendingPathComponent((outputFileName as NSString).appendingPathExtension("mov")!) 

しかし、ビルダーは、エラーメッセージ与えている:

appendingPathComponent」を使用できません:使用appendingPathComponent URLに代わりに。

私は知っている、私はいくつかばかげた間違いをしています。あなたは親切に私を助けてくれますか?追加ファイル用の

+1

SwiftコードでNSStringを使用しようとしているのはなぜですか? – rmaddy

+0

'let outputFileURL = FileManager.default.temporaryDirectory.appendingPathComponent(outputFileName).appendingPathExtension(" mov ")そしてパスが必要な場合' let outputFilePath = outputFileURL.path' –

+0

なぜ一時ファイルを保存するためにサブフォルダが必要ですか? –

答えて

0

ドキュメントディレクトリ内の参照のためのコードの下にチェック

class func getDocumentsDirectory() -> URL { 
     let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! 
     let dataPath = documentsDirectory.appendingPathComponent("FolderName") 

     do { 
      try FileManager.default.createDirectory(atPath: dataPath.path, withIntermediateDirectories: true, attributes: nil) 
     } catch let error as NSError { 
      print("Error creating directory: \(error.localizedDescription)") 
     } 
     return dataPath 
    } 

フォルダにあなたは尊敬フォルダに利用可能なファイルの名前を取得するには、この

//name for file to be added 
let uuid = UUID().uuidString 
// storing a Audio File in Directory 
let audioFilename = getDocumentsDirectory().appendingPathComponent("\(uuid).m4a") 

を使用することができます作成済み

代わりに

(NSTemporaryDirectory() as NSString).appending("MyFolder").appendingPathComponent((outputFileName as NSString).appendingPathExtension("mov")!) 

+0

エラーメッセージに従ってeとAPIの進化アップルは、 'createDirectory(at:withIntermediateDirectories:attributes:)'と 'contentsOfDirectory(at:includingPropertiesForKeys:options:)'のような 'FileManager'のURL関連APIを使うことを強く勧めます。 '列挙子(atPath'は古くなっています。 – vadian

0

使用この行を

URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("MyFolder").appendingPathComponent(outputFileName).appendingPathExtension("mov") 

これは、あなたurlを返し、stringでそのパスを取得するためにurl.Pathを使用します。 これがあなたを助けてくれることを願っています。

関連する問題