// // FileManager.swift // VariousManagerDemoApp // // Created by JungpyoHong on 4/22/21. // import Foundation class FileManager { static let manager = FileManageHelper() let useFileHandler = FileManager.default private init() {} func getDocumentDirectoryPath() -> URL { guard let url = useFileHandler.urls(for: .documentDirectory, in: .userDomainMask).first else { fatalError("Can't find path") } return url } func createFile(resourceName: String, fileExtension: String) { let fileURLProject = Bundle.main.path(forResource: resourceName, ofType: fileExtension) let folderUrl = getDocumentDirectoryPath() let fileUrl = folderUrl.appendingPathComponent("\(resourceName).\(fileExtension)") do { try useFileHandler.copyItem(atPath: fileURLProject ?? "", toPath: fileUrl.path) } catch { print(error) } } func writeFile(fileName: String, fileType: String, text: String) { let fileNameWithPath: String = "\(fileName).\(fileType)" let filePath = getDocumentDirectoryPath() let fileUrl = filePath.appendingPathComponent(fileNameWithPath) if useFileHandler.fileExists(atPath: fileUrl.path) { do { guard let fileContents = useFileHandler.contents(atPath: fileUrl.path) else { return } let fileContentsAsString = String(bytes: fileContents, encoding: .utf8) let fullText = "\(String(describing: fileContentsAsString) ):\(text)" guard let data = fullText.data(using: .utf8) else { return } try data.write(to: fileUrl) } catch { print(error) } } else { print("File is not existed") } } func readFile(filename: String, type: String) -> String { let realFileName = "\(filename).\(type)" let fileURLProject = getDocumentDirectoryPath() let fileURL = fileURLProject.appendingPathComponent(realFileName) do { let fileContentsAsString = try String(contentsOf: fileURL, encoding: .utf8) return fileContentsAsString } catch { fatalError("no file") } } func removeFile(fileName: String, fileType: String) { let fileNameWithPath: String = "\(fileName).\(fileType)" let filePath = getDocumentDirectoryPath() let fileUrl = filePath.appendingPathComponent(fileNameWithPath) if useFileHandler.fileExists(atPath: fileUrl.path) { do { try useFileHandler.removeItem(at: fileUrl) } catch { print(error) } } else { print("File is not existed") } } }