将现有音频文件复制到另一个目标时出错

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 块。

以上是关于将现有音频文件复制到另一个目标时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将音频文件复制到另一个文件

JAVA题目求助,关于文件夹的复制

Android:将文件从一个目录复制到另一个目录

Linux系统怎么复制文件夹下的全部文件到另外文件夹

linux 怎样复制一个目录的所有文件到另一个目录

无法在 CMAKE 中复制文件:复制文件时出错