首页 > 解决方案 > 无论如何不包括文件路径的开头

问题描述

好的,所以我的项目需要使用 textFile 来存储数据。当我将它传递给老师时,我不希望文件重置或由于无法找到路径而出错,无论如何都可以完成此操作.(新来的迅速。)

func writeFile()
{
    let str = temp
    let path = "/Users/xdesss/Desktop/Projectv4/Project/holder.txt"
    let filename = URL(fileURLWithPath: path)

    do {
        try str.write(to: filename, atomically: true, encoding: .utf8)
        try print(String(contentsOf: filename))
        print("This Url: \(path)")
    } catch {
        print("fail")
    }
}

标签: swiftfile

解决方案


/Desktop/Projectv4/Project/holder.txt是本地机器上的绝对路径。如果您在另一台计算机上运行此项目,则此路径将不存在,并且.txt文件将不存在。

您需要使用相对路径,因此.txt将使用项目文件夹作为基础加载文件。

为了实现这一点,您可以使用 Swift FileManager

文件系统内容的便捷接口,以及与之交互的主要方式。

使用它,您的代码将是这样的:

func writeFile() {
    let str = temp
    let file = "holder.txt"
    let currentDirectoryURL = URL(fileURLWithPath: FileManager.default.currentDirectoryPath)
    let fileURL = currentDirectoryURL.appendingPathComponent(file)

    do {
        try str.write(to: fileURL, atomically: true, encoding: .utf8)
        try print(String(contentsOf: fileURL))
        print("This Url: \(fileURL)")
    }
        catch {/* error handling here */}
}

推荐阅读