当前位置: 首页 > 知识库问答 >
问题:

WCSession didReceive文件不可移动“没有这样的文件或目录”

班言
2023-03-14

错误domain=nsposixerrordomain code=2“没有这样的文件或目录”

我做错了什么?以下是代码片段:

iPhone ViewController

func makeAction () {
    let url = NSURL.fileURL(withPath: fileArray[0].object(at: 2) as! String)
    var applicationDict = Dictionary<String, Array<AnyObject>>()
    applicationDict["fileArray"] = fileArray
    WCSession.default().transferFile(url, metadata: applicationDict)
}
func session(_ session: WCSession, didReceive file: WCSessionFile) {
DispatchQueue.main.async(execute: { () -> Void in
    print("RECEIVED")
    var applicationDict = Dictionary<String, Array<AnyObject>>()
    applicationDict = file.metadata as! Dictionary<String, Array<AnyObject>>
    self.fileArray = applicationDict["fileArray"]!
    self.fileList = self.fileArray

    let dirPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
    let tempDocsDir = dirPaths[0] as String
    let docsDir = tempDocsDir.appending("/")
    let filemgr = FileManager.default

    do {
        let fileName = self.fileArray[0].object(at: 1) as! String
        try filemgr.moveItem(atPath: file.fileURL.path, toPath: docsDir + fileName)
    } catch let error as NSError {
        print("Error moving file: \(error.description)")
    }
    self.loadTableData()
})
}

共有1个答案

齐学文
2023-03-14

DidReceiveFile的文档说明:

文件:包含文件的URL和任何附加信息的对象。如果要保留此参数引用的文件,则必须在实现此方法期间将其同步移动到新位置。如果不移动文件,系统在此方法返回后将其删除。

因此,在将文件移动到应用程序可以访问的位置之前,请确保不在此方法中进行异步操作。

 类似资料:
  • 问题内容: 我在Windows中使用Code :: Blocks。 我创建了一个dll项目,试图获得一些JNI实践。 在javah生成的.h文件中,有#include jni.h,但是当我尝试对其进行编译时,它总是说jni.h:没有这样的文件或目录。 我认为这与classpath有关,但我不知道它是什么!可能是我必须更改Code :: Blocks的设置 有人可以帮我解决这个问题吗?非常感谢 编辑

  • 问题内容: 我从节点应用程序收到此错误: 我知道文件在那里,因为当我尝试使用确切的复制和粘贴路径打开文件时,它可以工作。我也知道应用程序使用的是正确的目录,因为它会在错误中输出它。 问题答案: 波浪形扩展是一件空壳的事情。编写正确的路径名(可能是yourusername )或使用

  • 问题内容: 我最近在运行Ubuntu 12.04 LTS的Macbook Pro上安装了用于C ++开发的KDevelop 4。 我想在我的C ++代码中嵌入Python应用程序。为此,需要包含Python.h头文件。所以,我做到了。 但是,在运行时,我从IDE收到以下响应: 但是,我很快就发现了问题。我还没有下载python- dev软件包。所以,我做到了。我又跑了一次,但同样的错误又出现了。因

  • 问题内容: 我在运行docker文件时收到来自docker的错误消息。就是说/ var / lib / docker / aufs / layers / xxxx:运行Docker build时没有这样的文件或目录。 我尝试了多种方法来删除容器和图像,因此我对此非常有兴趣。 任何 Docker文件为: 完整的控制台输出为: 编辑 @BMitchs的建议解决了该问题: rm -rf / var /

  • 我想我没有从源代码正确安装pylint。这是学习python中包如何工作的好机会。 我从源代码中安装了,我可以在我的pip列表中看到它。 我想卸载它并从pypi安装。 但是,我的2个pip是空的,但是当我使用 我得到一个错误 有没有办法删除这个bash命令?Pylint可能是安装了,但我不知道在哪里,或如何删除它? 编辑:正如评论中建议的,我尝试了这个链接查找哪个版本的包安装了pip。这也给了我一

  • 一切正常,uri正在获取图像和路径,但在第二个acitivty返回时,图像不显示在imageView中,并在logcat中显示,请帮助 E/Ashish://storage/emulated/0/pictures/fotoaula/img_20180329_183302.jpg E/bitmapFactory:无法解码流:java.io.fileNotFoundException://storag