在 Swift 中创建一个目录并将文件存储在其中
Create a directory and store files inside it in Swift
我正在创建一个目录,以便我可以将临时视频保存到其中,因为 TempVideos 是一个文件夹,现在我的视频剪辑将在该文件夹中...
func createTempDirectoryToStoreVideos(){
var error: NSError?
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory: AnyObject = paths[0]
tempVideoPath = documentsDirectory.stringByAppendingPathComponent("TempVideos")
if (!NSFileManager.defaultManager().fileExistsAtPath(tempVideoPath!)) {
NSFileManager.defaultManager() .createDirectoryAtPath(tempVideoPath!, withIntermediateDirectories: false, attributes: nil, error: &error)
}
}
现在在这些目录中,我想将视频存储为
func saveCompressVideoToTempDirectory(var compressedVideoUrl:NSURL?){
let data = NSData(contentsOfURL: compressedVideoUrl!)
var error:NSError?
var success = data?.writeToFile(tempVideoPath!, options: NSDataWritingOptions.AtomicWrite, error: &error)
println(error)
if let temp = success{
if temp {
println("success")
}else{
println("not valid ")
}
}
}
但是我收到错误
Optional(Error Domain=NSCocoaErrorDomain Code=512 "The operation
couldn’t be completed. (Cocoa error 512.)" UserInfo=0x17407f6c0
{NSFilePath=/var/mobile/Containers/Data/Application/F1140A9F-8D16-444B-8679-9ED1AD3F5E6A/Documents/TempVideos,
NSUnderlyingError=0x17424a320 "The operation couldn’t be completed. Is
a directory"})
你能试试 createFileAtPath
吗?
func createFileAtPath(_ path: String,
contents data: NSData?,
attributes attr: [String : AnyObject]?) -> Bool
同样的事情涉及writeToFile
:
func writeToFile(_ path: String,
options writeOptionsMask: NSDataWritingOptions) throws
其中,注意,路径是
The location to which to write the receiver's bytes. If path
contains
a tilde (~) character, you must expand it with
stringByExpandingTildeInPath
before invoking this method.
你应该这样写:
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var dirpath: String = paths[0] as String
let filepath = dirpath.stringByAppendingPathComponent("myOwnData.mov")
我正在创建一个目录,以便我可以将临时视频保存到其中,因为 TempVideos 是一个文件夹,现在我的视频剪辑将在该文件夹中...
func createTempDirectoryToStoreVideos(){
var error: NSError?
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
let documentsDirectory: AnyObject = paths[0]
tempVideoPath = documentsDirectory.stringByAppendingPathComponent("TempVideos")
if (!NSFileManager.defaultManager().fileExistsAtPath(tempVideoPath!)) {
NSFileManager.defaultManager() .createDirectoryAtPath(tempVideoPath!, withIntermediateDirectories: false, attributes: nil, error: &error)
}
}
现在在这些目录中,我想将视频存储为
func saveCompressVideoToTempDirectory(var compressedVideoUrl:NSURL?){
let data = NSData(contentsOfURL: compressedVideoUrl!)
var error:NSError?
var success = data?.writeToFile(tempVideoPath!, options: NSDataWritingOptions.AtomicWrite, error: &error)
println(error)
if let temp = success{
if temp {
println("success")
}else{
println("not valid ")
}
}
}
但是我收到错误
Optional(Error Domain=NSCocoaErrorDomain Code=512 "The operation couldn’t be completed. (Cocoa error 512.)" UserInfo=0x17407f6c0 {NSFilePath=/var/mobile/Containers/Data/Application/F1140A9F-8D16-444B-8679-9ED1AD3F5E6A/Documents/TempVideos, NSUnderlyingError=0x17424a320 "The operation couldn’t be completed. Is a directory"})
你能试试 createFileAtPath
吗?
func createFileAtPath(_ path: String,
contents data: NSData?,
attributes attr: [String : AnyObject]?) -> Bool
同样的事情涉及writeToFile
:
func writeToFile(_ path: String,
options writeOptionsMask: NSDataWritingOptions) throws
其中,注意,路径是
The location to which to write the receiver's bytes. If
path
contains a tilde (~) character, you must expand it withstringByExpandingTildeInPath
before invoking this method.
你应该这样写:
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var dirpath: String = paths[0] as String
let filepath = dirpath.stringByAppendingPathComponent("myOwnData.mov")