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

尝试使用FileManager移动项时出错

能旭
2023-03-14

我有几个项目保存到documents目录。我目前需要这些以编程方式移动到另一个目录。我成功地创建了新目录,但在使用FileManager.Default.MoveItem时似乎并没有看到这一点。

用于创建目录的代码。

let path = getDocumentsDirectory().appendingPathComponent("Media").path

        do{
            try FileManager.default.createDirectory(atPath: path, withIntermediateDirectories: false, attributes: nil)

            print("\nDIRECTORY 'Media' CREATED")
        }catch {
            print("\nDIRECTORY 'Media' WAS NOT ABLE TO BE CREATED")
            print("ERROR - \(error)")
        } 

我用这个代码检查我的URL。

let mediaURL = getDocumentsDirectory().appendingPathComponent("Media")
print("\nMEDIA URL: \(mediaURL)")

它输出这个。

MEDIA URL:file:///Users/joseph/Library/Developer/CoreSimulator/Devices/552B72BF-8929-40EE-A75B-4574D3D2918A/data/Containers/Data/Application/E168B872-6A1D-4D78-B460-D45194088E5B/Documents/Media/
do{
    try FileManager.default.moveItem(at: url, to: mediaURL)

    print("\nFILE MOVED TO NEW MEDIA PATH SUCCESSFULLY")
}catch {
    print("\nCOULDN'T MOVE FILE TO NEW MEDIA PATH")
    print("ERROR - \(error)")
}

无法将文件移动到新媒体路径错误-错误域=nscocoaErrorDomain代码=516“无法将Image_5移动到”Documents“,因为已存在同名项.”userInfo={nsSourceFilePatherRokey=/users/Joseph/Library/Developer/CoreSimulator/Devices/552B72BF-8929-40EE-A75B-4574D3D2918a/Data/Containers/Data/Application/E168B872-6A1D-4D78-B460-D45194088E5B/Documents/Image_5,nsUserStringVariant=(Move),

媒体目录应该是空的,因为它是新创建的,所以我收到的错误有点让人困惑。它还说它正试图将其移到“文档”,但它应该移到“媒体”。是什么导致了这个问题,我该如何解决它?我只是试图将保存在“文档”中的项目移动到新目录“媒体”中。

共有1个答案

姜松
2023-03-14

必须将文件名附加到目标URL。根据文件:

srcURL中项的新位置。此参数中的URL不能是文件引用URL,并且必须包括新位置中的文件或目录的名称。此参数不能为零。

 类似资料:
  • ...在Xcode控制台,我得到 它演示了建立了连接并成功找到了服务器,但其他问题出现了。会很感激你的帮助。

  • 我尝试使用< code>minikube start启动minikube,但出现以下错误: charlie@charlie:~$minikube start本地库伯内特斯v1.10.0集群…启动VM… E0705 00:39:35.199099 20888start.go:168]启动主机时出错:创建主机时出错:执行步骤出错:运行预先检查。:我们从版本5开始支持Virtualbox。您的Virtu

  • 我必须处理不同的项目,其中一个是使用Java 8,另一个是Java 17。上周我在使用Java 17,现在我正在尝试将我的配置还原为使用Java 8。 这些是我的配置 我也删除了~/. m2内的所有文件夹。 我在IntelliJ中的配置是: 项目结构 SDK:OpenJDK 1.8 语言级别:SDK默认 项目结构 模块SDK:项目SDK(OpenJDK 1.8) 首选项|构建、执行、部署|编译器|

  • 我有一个UIView,我想在屏幕外设置动画,然后将另一个视图带入屏幕。我正在使用自动布局,并为左侧和右侧NSLayoutConstraint设置了一个IBMoutlet。似乎没有为UIView设置宽度,视图实际上不会在屏幕外设置动画。 我正在尝试使用此代码关闭UIView: 我在顶部(0)、左侧(0)和右侧(0)设置了约束。也许这是我的问题,我把视图固定在屏幕的边缘,但我希望它可以在多个屏幕大小上

  • 我试图让一些jLabel在按下GridLayout键的JPanel上彼此交换位置。 到目前为止: 1。我只能让他们对鼠标点击做出反应 2。他们只能在其上方和左侧的位置进行切换。 注: 1。如果我设置movePlayer(1),它会工作。并从网格(8,7)切换一个带有玩家图像的JLabel,其中一个JLabel上面有一个地板图像。然而,我的问题是,当我设置movePlayer(2)时,它会给我和索引

  • 我试图在命令shell上使用安装,但出现以下错误: 使用缓存收集rpy2https://files.pythonhosted.org/packages/c7/43/401afad8556bf92b08bd7d422cacac614b0e8dd2bce31848318bbcb18f48/rpy2-3.0.5.tar.gz错误:从命令python安装程序完成输出。py egg_info:ERROR:T