重命名文档目录中的文件

2024-04-23

我的电脑里有一个PDF文件DocumentDirectory.

我希望用户能够将此 PDF 文件重命名为其他名称(如果他们愿意)。

我会有一个UIButton开始这个过程。新名称将来自UITextField.

我该怎么做呢?我是 Swift 新手,只找到了有关此的 Objective-C 信息,并且很难转换它。

文件位置的示例是:

/var/mobile/Containers/Data/Application/39E030E3-6DA1-45FF-BF93-6068B3BDCE89/Documents/Restaurant.pdf

我有这个代码来检查文件是否存在:

        var name = selectedItem.adjustedName

        // Search path for file name specified and assign to variable
        let getPDFPath = paths.stringByAppendingPathComponent("\(name).pdf")

        let checkValidation = NSFileManager.defaultManager()

        // If it exists, delete it, otherwise print error to log
        if (checkValidation.fileExistsAtPath(getPDFPath)) {

            print("FILE AVAILABLE: \(name).pdf")

        } else {

            print("FILE NOT AVAILABLE: \(name).pdf")

        }

要重命名文件,您可以使用 NSFileManagermoveItemAtURL.

移动文件moveItemAtURL在同一位置但具有两个不同的文件名与“重命名”操作相同。

简单的例子:

Swift 2

do {
    let path = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]
    let documentDirectory = NSURL(fileURLWithPath: path)
    let originPath = documentDirectory.URLByAppendingPathComponent("currentname.pdf")
    let destinationPath = documentDirectory.URLByAppendingPathComponent("newname.pdf")
    try NSFileManager.defaultManager().moveItemAtURL(originPath, toURL: destinationPath)
} catch let error as NSError {
    print(error)
}

Swift 3

do {
    let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
    let documentDirectory = URL(fileURLWithPath: path)
    let originPath = documentDirectory.appendingPathComponent("currentname.pdf")
    let destinationPath = documentDirectory.appendingPathComponent("newname.pdf")
    try FileManager.default.moveItem(at: originPath, to: destinationPath)
} catch {
    print(error)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重命名文档目录中的文件 的相关文章

  • SpriteKit 中的攻击按钮

    我对 Xcode 有点陌生 一直在为我的班级制作 2d 游戏 我已经有一段时间遇到按钮问题了 我刚刚找到了为什么我的跳跃按钮不起作用的解决方案 但我还有一个攻击按钮 我设置了代码 使按钮显示在屏幕上并在按下时更改其图像 但是 我不知道要放入
  • 如何处理 UICollectionView CompositionalLayout 中的空项目部分

    我正在尝试使用具有多个部分的组合布局制作集合视图 但如果部分中有空项目我该如何处理 如果项目为空 我不想显示该部分 UICollectionViewCompositionalLayout section env gt NSCollectio
  • 扩展中的 Swift 'open' 关键字和可重写方法/属性?

    随着介绍openSwift 3 0 中的关键字 Swift 中的 open 关键字是什么 https stackoverflow com questions 38947101 what is the open keyword in swif
  • 尝试后台获取期间出现 AFNetworking 错误 53

    在更新我的应用程序以支持后台应用程序刷新时 我遇到了 AFNetworking 问题 我正进入 状态NSPOSIXErrorDomain Code 53 Software caused connection abort 该问题似乎出现在 i
  • 在不滚动的情况下对 UITableViewCell 的高度变化进行动画处理

    我知道如何使用此处所示的方法对 UITableViewCell 的高度变化进行动画处理 当 UITableViewCell 被选中时 你能用动画来改变高度吗 https stackoverflow com questions 460014
  • 如何关闭使用presentModalViewController打开的视图控制器:

    我使用了一个视图控制器presentModalViewController 现在如何关闭 关闭它 对于 iOS6 使用此代码 self dismissViewControllerAnimated YES completion Nil 代替
  • 生成具有给定分布的随机数

    看看这个问题 快速选择随机数的概率 https stackoverflow com questions 26092977 swift probability of random number being selected 最上面的答案建议使
  • detached 和 allocateCurrentContext 是什么意思?

    当我将作业添加到队列中时 DispatchWorkItemFlags 为我们提供了几个选项可供选择 public func sync
  • 反应本机无法解析模块“warnOnce”

    我的英语有点生疏 对此我很抱歉 当我在 iOS 模拟器上启动 React Native 项目时 出现错误 为了排除与我的代码的任何冲突 我开始了一个新项目 react native init demo react native start
  • webapp 在 iOS 7 中无法正确缩放

    有人遇到同样的问题吗 content width device width 当我的 iphone 仍然是 i0S 6 并且我刚刚更新到 iOS 7 并且似乎不再工作时它就可以工作 或者可能是其他原因导致了问题 有人有什么想法吗 现在我正在使
  • 如何让NSManagedObject不出错?

    我目前正在调试另一个开发人员编写的一个大项目 该项目使用CoreData我对此很陌生 我遇到了崩溃 这是由于某些NSManagedObject是一个错误 我对什么是错误不太了解 我想将对象转换为 非错误 看看它是否有帮助 阅读文档让我想到t
  • Xcode 的 Organizer 窗口中没有“Use for Development”

    我今天注册了 Apple 的 99 美元 iOS 开发计划 在 Xcode 中的证书 标识符和配置文件下 无论我单击什么 它都会告诉我 将您的设备连接到 Mac 然后在 Xcode 的管理器窗口中单击 用于开发 使用与您的 iOS 开发者计
  • Swift 中构造泛型类型的扩展

    是否可以为专用 构造的泛型类型扩展泛型类 我想用一种方法来扩展 Int Arrays 来计算其元素之和 e g extension Array
  • 找不到“folly/Portability.h”文件 React 库

    我的 React Native 项目在 Xcode 上遇到构建失败 错误是 folly Portability h file not found 在过去的几天里 我一直在尝试自己解决这个问题 但无法解决 RN info React Nati
  • 在 Swift 3 中从 UUID 获取数据

    我用 Objective C 编写了以下代码 我试图在 Swift 3 中使用它 一些等效函数似乎在 Swift 3 中不可用 下面的代码是 Objective C 中的代码 NSUUID vendorIdentifier UIDevice
  • 在两个应用程序之间通过 url 方案快速传递数据?

    有两个测试应用程序称为发送者和接收者 他们通过 UrlScheme 相互通信 我想从发送者发送一个字符串到接收者 这可能吗 关于字符串的详细信息 我都在发送者和接收者中创建文本字段 我会在发送者文本字段上发送一些字符串 当我单击按钮时 字符
  • Swift - 以编程方式刷新约束

    我的 VC 开头为stackView附有Align Bottom to Safe Area 我有 tabBar 但一开始是隐藏的tabBar isHidden true 稍后 当 tabBar 出现时 它会隐藏stackView 所以我需要
  • Objective-C ARC 只读属性和私有 setter 实现

    在 ARC 之前 如果我希望某个属性对于使用它是只读的 但在类中可写 我可以这样做 Public declaration interface SomeClass NSObject property nonatomic retain read
  • 如何在 SwiftUI 中导航到另一个视图时消除动画故障

    当导航到 SwiftUI 中包含列表的视图时 模拟器和真实设备上都会出现动画故障 就在导航动画结束时 列表项似乎 跳 了几个像素到其指定位置 请参阅以下简单示例 内容视图 struct ContentView View var body s
  • 在iOS中启动应用程序时如何复制sqlite数据库?

    每次启动应用程序时 我想将带有最新更新的 sqlite 数据库从数据库位置复制到我的 iOS 应用程序 有什么办法可以做到吗 您可以将以下方法添加到您的应用程序委托中 void copyDatabaseIfNeeded Using NSFi

随机推荐