swift 正在从共享应用程序组删除文件

kpbwa7wx  于 2023-02-03  发布在  Swift
关注(0)|答案(2)|浏览(74)

我有一个函数可以成功地将一个文件移动到共享应用程序组中,但我删除该文件的函数似乎不起作用。如果我打印出fullpath2变量,它似乎是正确的位置,但该文件没有被删除,也没有返回错误。
下面是我的函数:

func getSharedFilePath(appGroup:String,sharedFilename:String)->URL? {

if let directoryPath = FileManager().containerURL(forSecurityApplicationGroupIdentifier: appGroup) {
    return directoryPath.appendingPathComponent(sharedFilename)
} else {
    return nil
}
}

public func deleteFromSharedFile(sharedFilename: String, fileExtension: String)->String {
let sharedFilename = "\(sharedFilename).\(fileExtension)"
guard let url = getSharedFilePath(appGroup:applicationGroup,sharedFilename:sharedFilename) else {
    return("Error getting shared file path")
}

// read file from file system to data variable
let fileManager = FileManager.default
do {
    try fileManager.removeItem(atPath: (url.path))
    return("File Removed")
}
catch let error as NSError {
    return("File Remove Failed - \(error)")
}
}
fumotvh3

fumotvh31#

下面是我的表情应用程序的一些代码片段。
效果很好。

func removeImage(itemName: String, fileExtension: String) {
    let fileName:String = itemName + "." + fileExtension
    let fileManager = FileManager.default
    guard let groupURL = fileManager.containerURL(forSecurityApplicationGroupIdentifier: "group.io.XXXXXX.XXXX") else {
        return
    }
    let storagePathUrl = groupURL.appendingPathComponent("image/" + fileName, isDirectory: false)
    let storagePath = storagePathUrl.path

    do {
       if fileManager.fileExists(atPath: storagePath) {
           try fileManager.removeItem(atPath: storagePath)
        }
    } catch let error as NSError {
        print(error.debugDescription)
    }
}

"image"只是应用程序组子文件夹的名称。
如果直接将文件保存在根文件夹中,则可以将其删除。
希望对你有帮助。

1mrurvl1

1mrurvl12#

FileManager.default.containerURL(...)在应用程序每次运行时都会更改。
如果您要保存文件的位置以便以后删除,请知道完整文件路径的这一部分将有所不同。

相关问题