Привет У меня есть следующий код для удаления файла из каталога файлов в качестве функции.Но, кажется, работает несколько раз, когда передается одна строка имени файла, но когда я использую ее как функцию и передаю имена файлов, она не работает.Код выглядит следующим образом.Я использую Xcode 9.2 со Swift 4.1
//USAGE
//User Clicks on a delete button and that will present an Alert Dialog with a list of files and user clicks on the file he/she would like to delete
/////////////////////////////////////////////////////
@IBAction func deleteConfigAction(_ sender: Any) {
//---
//---
//Another function is called to list all files in the files directory and then store it into a string variable
var file1: String = "Empty"
//Calling another function to load all files present
var userFilesPresent : [String] = listFilesPresent()!
//For Example
file1 = userFilesPresent[0]
//---
let alert = UIAlertController(title: "Delete File", message: "Select a file to be deleted", preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: file1, style: .default,handler: { (action: UIAlertAction!) in
self.deleteFileSelected(fileName: file1)
print("file deleted =",file1)
}))
alert.addAction(UIAlertAction(title: "Close", style: UIAlertActionStyle.cancel, handler: nil))
// show the alert
self.present(alert, animated: true, completion: nil)
}
//----------------------------------------------------------------
//FUNCTION
func deleteFileSelected(fileName:String) -> [String]? {
//Set Files directory path
let mypath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)
if mypath.count > 0 {
let directoryPath = mypath[0]
//Filter for txt files
let searchfilePath = NSString(format:"%@/%@.txt", directoryPath, fileName) as String
if FileManager.default.fileExists(atPath: searchfilePath) {
do {
//file exists, now try deleting the file
try FileManager.default.removeItem(atPath: searchfilePath)
print("File deleted")
} catch {
print("Error")
}
}
}
return nil
}