Hallo Zusammen,
ich habe eine Exportfunktion erstellt, die mir Daten aus CoreData in eine CSV Datei schreibt. Hierzu geht der Filemanager auf und man kann die Aktion wählen funktioniert auch so weit. Nun will ich das selbe für eine Import Funktion machen und da stehe ich auf dem Schlauch, wie kann ich den Filemanager öffnen und nach der Datei suchen?
Anbei der Code für die Export Funktion. Danke für den Denkanstoss
Alles anzeigen
ich habe eine Exportfunktion erstellt, die mir Daten aus CoreData in eine CSV Datei schreibt. Hierzu geht der Filemanager auf und man kann die Aktion wählen funktioniert auch so weit. Nun will ich das selbe für eine Import Funktion machen und da stehe ich auf dem Schlauch, wie kann ich den Filemanager öffnen und nach der Datei suchen?
Anbei der Code für die Export Funktion. Danke für den Denkanstoss
C-Quellcode
- @IBAction func ButtonExportZeiten(_ sender: Any) {
- if let listen = LoadZeiten() {
- ListeZeiten = listen
- }
- var regionKommen:String = ""
- var regionGehen:String = ""
- let fileName = "Arbeitszeiten.csv"
- let path = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)
- var csvText = "Kommen; Kommen Latitude; Kommen Longitude; Kommen Region; Gehen; Gehen Latitude; Gehen Longitude; Gehen Region; Status; GPS; Manuell; Typ\n"
- let count = ListeZeiten.count
- if count > 0 {
- for Zeile in ListeZeiten {
- if let kommenRegion = Zeile.region_kommen {
- regionKommen = kommenRegion
- }
- if let gehenRegion = Zeile.region_gehen {
- regionGehen = gehenRegion
- }
- let Latitude_KommenString = String(Zeile.latitude_kommen)
- let Latitude_Kommen = Latitude_KommenString.replacingOccurrences(of: ".", with: ",")
- let Longitude_KommenString = String(Zeile.longitude_kommen)
- let Longitude_Kommen = Longitude_KommenString.replacingOccurrences(of: ".", with: ",")
- let Latitude_GehenString = String(Zeile.latitude_gehen)
- let Latitude_Gehen = Latitude_GehenString.replacingOccurrences(of: ".", with: ",")
- let Longitude_GehenString = String(Zeile.longitude_gehen)
- let Longitude_Gehen = Longitude_GehenString.replacingOccurrences(of: ".", with: ",")
- let newLine = "\(Zeile.kommen!); \(Latitude_Kommen); \(Longitude_Kommen); \(regionKommen); \(Zeile.gehen!); \(Latitude_Gehen); \(Longitude_Gehen); \(regionGehen); \(Zeile.status!); \(Zeile.gps); \(Zeile.manuell); \(Zeile.typ!)\n"
- csvText.append(newLine)
- }
- do {
- try csvText.write(to: path!, atomically: true, encoding: String.Encoding.utf8)
- let vc = UIActivityViewController(activityItems: [path!], applicationActivities: [])
- vc.excludedActivityTypes = [
- UIActivity.ActivityType.assignToContact,
- UIActivity.ActivityType.saveToCameraRoll,
- UIActivity.ActivityType.postToFlickr,
- UIActivity.ActivityType.postToVimeo,
- UIActivity.ActivityType.postToTencentWeibo,
- UIActivity.ActivityType.postToTwitter,
- UIActivity.ActivityType.postToFacebook,
- UIActivity.ActivityType.openInIBooks
- ]
- present(vc, animated: true, completion: nil)
- } catch {
- print("Failed to create file")
- print("\(error)")
- logbuchSave(Ereignis: "Failed to create file \(error)")
- }
- }
- else {
- let alert = UIAlertController(title: "Keine Daten vorhanden",
- message: "Die Datenbank ist leer",
- preferredStyle: .alert)
- logbuchSave(Ereignis: "Keine Daten zum Exportieren vorhanden, Datenbank ist leer")
- let cancelAction = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
- alert.addAction(cancelAction)
- present(alert, animated: true)
- }
- }
- func LoadZeiten() -> [DB_Zeiten]? {
- let request: NSFetchRequest<DB_Zeiten> = DB_Zeiten.fetchRequest()
- do {
- let result = try mgdContext.fetch(request)
- return result
- } catch {
- print(error.localizedDescription)
- }
- return nil
- }