【发布时间】:2021-10-14 08:51:29
【问题描述】:
See Image as reference我正在做一个项目,我需要在其中显示一个 UICollectionview,其中包括来自文件管理器的文件,在这个 collectionview 中我显示图像和文件夹。还有一个按钮可以删除选定的单元格。 那么如何从文档目录中删除选定的文件夹/图像?
我正在使用此功能创建文件夹。
func createDir() {
let manager = FileManager.default
guard let url = manager.urls(for: .documentDirectory, in: .userDomainMask).first else {
return
}
print("url path is ==>>",url.path)
let folderName = url.appendingPathComponent(folderNameTextField.text!)
do {
try manager.createDirectory(at: folderName, withIntermediateDirectories: true, attributes: [:])
print("Saved")
listFilesFromDocumentsFolder()
// getAllDirectoriesList()
}
catch {
print(error)
}
}
`并使用此功能保存图像
func saveImageToDocumentDirectory(image: UIImage ) {
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
//
let fileName = "Doc-" + dateFormatter.string(from: Date())
let fileURL = documentsDirectory.appendingPathComponent(fileName
)
if let data = image.jpegData(compressionQuality: 1.0),!FileManager.default.fileExists(atPath: fileURL.path){
do {
try data.write(to: fileURL)
print("file saved")
} catch {
print("error saving file:", error)
}
}
}
我正在使用这个功能删除,它可以工作但不正常,
for file in folderImageArray {
try! FileManager.default.removeItem(at: file)
}
并且 这个函数会崩溃。
for file in folderNameArray {
try! FileManager.default.removeItem(atPath: file)
}
【问题讨论】:
-
一个叫'folderImageArray'的人从哪里来?一个叫'folderNameArray'的人来自哪里?您的文件在哪里?如果文件位于您的沙盒文件夹中,您只能在未经用户同意的情况下使用您的文件。
-
folderImageArray 是一个 URL 数组,我用来在 UICollectionView 中显示图像,而 folderNameArray 是一个字符串数组,我用来在 UICollectionView 中显示文件夹名称。
-
没有人知道您的收藏视图中显示的文件来自哪里。你的收藏视图在哪里?它的数据集来源是什么?
-
CollectionView 显示为应用程序的主页。
-
我添加了图片,以便任何人都能理解。我正在 UICollectionView 中显示文档目录中的所有文件。
标签: ios swift nsfilemanager nsdocumentdirectory