将现有音频文件复制到另一个目标时出错
Posted
技术标签:
【中文标题】将现有音频文件复制到另一个目标时出错【英文标题】:Error Copying Existing Audio File to Another Destination 【发布时间】:2016-02-18 04:53:29 【问题描述】:我用AVAudioRecorder
录制了一个文件,我可以很好地播放这个文件。我用名称“MyAudioFile.m4a”保存这个音频文件。当我使用文件管理器检查此文件是否存在时,我得到的真值意味着此文件存在于设备文件管理器中。
问题是,当我尝试在桌面上复制此文件时,它会给出一个 错误。
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let getImagePath = paths.stringByAppendingString("/MyAudioFile.m4a")
let filemgr = NSFileManager.defaultManager()
if (filemgr.fileExistsAtPath(getImagePath))
// Control always come in if block
print("FILE AVAILABLE");
try! filemgr.copyItemAtPath( getImagePath , toPath: "/Users/talnetlgia/Desktop/songAudioFile.m4a")
else
print("FILE NOT AVAILABLE");
错误:
“试试看!”表达式意外引发错误:错误 Domain=NSCocoaErrorDomain Code=4 "文件“MyAudioFile.m4a”没有 存在。” UserInfo=NSSourceFilePathErrorKey=/var/mobile/Containers/Data/Application/6B715607-434A-47F9-9557-20CBDE34FC18/Documents/MyAudioFile.m4a, NSUserStringVariant=( 复制),NSDestinationFilePath=/Users/talnetlgia/Desktop/songAudioFile.m4a, NSFilePath=/var/mobile/Containers/Data/Application/6B715607-434A-47F9-9557-20CBDE34FC18/Documents/MyAudioFile.m4a, NSUnderlyingError=0x130001d80 错误域=NSPOSIXErrorDomain 代码=2 "没有这样的文件或目录": 文件 /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.1.101.15/src/swift/stdlib/public/core/ErrorType.swift, 第 50 行`
请帮助我,我花了很多时间。 谢谢
【问题讨论】:
【参考方案1】:假设该文件存在,但在找到它时出现错误!只需尝试print
错误:
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let getImagePath = paths.stringByAppendingString("/MyAudioFile.m4a")
let filemgr = NSFileManager.defaultManager()
if (filemgr.fileExistsAtPath(getImagePath))
// Control always come in if block
print("FILE AVAILABLE");
do
try filemgr.copyItemAtPath( getImagePath , toPath: "/Users/talnetlgia/Desktop/songAudioFile.m4a")
catch let error as NSError
print(error.description)
else
print("FILE NOT AVAILABLE");
【讨论】:
Erro-----> 错误域=NSCocoaErrorDomain Code=4 “文件“MyAudioFile.m4a”不存在。” UserInfo=NSSourceFilePathErrorKey=/var/mobile/Containers/Data/Application/1D37F8CE-6C92-4337-BA4A-3297B3342B6E/Documents/MyAudioFile.m4a,NSUserStringVariant=(复制),NSDestinationFilePath=/Users/talnetlgia/Desktop/songAudioFile.m4a , NSFilePath=/var/mobile/Containers/Data/Application/1D37F8CE-6C92-4337-BA4A-3297B3342B6E/Documents/MyAudioFile.m4a, NSUnderlyingError=0x13c725380 Error Domain=NSPOSIXErrorDomain Code=2“没有这样的文件或目录” @vikranttanwar 这不是错误!那是一个崩溃。尝试用我的代码替换你的代码,在这里你会得到print(error.description)
错误
根据您的错误,这意味着您没有从FileManager
获取文件
我用你的代码替换了,这个输出来自 print(error.description)。
如果错误显示不存在文件然后控制如何进入 If 块。以上是关于将现有音频文件复制到另一个目标时出错的主要内容,如果未能解决你的问题,请参考以下文章