FileManage removed

This commit is contained in:
Chris Li 2016-09-21 13:37:51 -04:00
parent c436aab3a8
commit 3dc728be2f
7 changed files with 34 additions and 157 deletions

View File

@ -16,7 +16,7 @@ class LibraryBackupTBVC: UITableViewController {
super.viewDidLoad()
title = NSLocalizedString("Backup", comment: "Setting: Backup local files title")
toggle.addTarget(self, action: #selector(LibraryBackupTBVC.switcherValueChanged(_:)), forControlEvents: .ValueChanged)
toggle.on = !(FileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) ?? false)
toggle.on = !(NSFileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) ?? false)
}
// MARK: - Table view data source
@ -48,7 +48,7 @@ class LibraryBackupTBVC: UITableViewController {
func switcherValueChanged(switcher: UISwitch) {
guard switcher == toggle else {return}
FileManager.setSkipBackupAttribute(!switcher.on, url: NSFileManager.docDirURL)
NSFileManager.setSkipBackupAttribute(!switcher.on, url: NSFileManager.docDirURL)
}
}

View File

@ -67,7 +67,7 @@ class SettingTBVC: UITableViewController {
case NSIndexPath(forRow: 1, inSection: 0):
return Preference.libraryRefreshAllowCellularData ? LocalizedStrings.on : LocalizedStrings.off
case NSIndexPath(forRow: 2, inSection: 0):
guard let skipBackup = FileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) else {return ""}
guard let skipBackup = NSFileManager.getSkipBackupAttribute(item: NSFileManager.docDirURL) else {return ""}
return skipBackup ? LocalizedStrings.off: LocalizedStrings.on
case NSIndexPath(forRow: 0, inSection: 1):
return String.formattedPercentString(Preference.webViewZoomScale / 100)

View File

@ -49,7 +49,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.8.956</string>
<string>1.8.966</string>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
<key>LSRequiresIPhoneOS</key>

View File

@ -21,7 +21,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.8.959</string>
<string>1.8.969</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionMainStoryboard</key>

View File

@ -107,7 +107,6 @@
97A1FD3A1D6F724E00A80EE2 /* reader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD351D6F724E00A80EE2 /* reader.cpp */; settings = {COMPILER_FLAGS = "-w"; }; };
97A1FD3B1D6F724E00A80EE2 /* stringTools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD371D6F724E00A80EE2 /* stringTools.cpp */; settings = {COMPILER_FLAGS = "-w"; }; };
97A1FD421D6F728200A80EE2 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD3D1D6F728200A80EE2 /* Extensions.swift */; };
97A1FD431D6F728200A80EE2 /* FileManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD3E1D6F728200A80EE2 /* FileManager.swift */; };
97A1FD441D6F728200A80EE2 /* Preference.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD401D6F728200A80EE2 /* Preference.swift */; };
97A1FD451D6F728200A80EE2 /* StringTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A1FD411D6F728200A80EE2 /* StringTools.swift */; };
97A7017F1D2C59CA00AAE2D8 /* GetStartedController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97A7017E1D2C59CA00AAE2D8 /* GetStartedController.swift */; };
@ -337,7 +336,6 @@
97A1FD351D6F724E00A80EE2 /* reader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reader.cpp; path = "C&C++/reader.cpp"; sourceTree = "<group>"; };
97A1FD371D6F724E00A80EE2 /* stringTools.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = stringTools.cpp; path = "C&C++/stringTools.cpp"; sourceTree = "<group>"; };
97A1FD3D1D6F728200A80EE2 /* Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = "<group>"; };
97A1FD3E1D6F728200A80EE2 /* FileManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileManager.swift; sourceTree = "<group>"; };
97A1FD401D6F728200A80EE2 /* Preference.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preference.swift; sourceTree = "<group>"; };
97A1FD411D6F728200A80EE2 /* StringTools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StringTools.swift; sourceTree = "<group>"; };
97A2AB881C1B80FF00052E74 /* Kiwix.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Kiwix.app; sourceTree = BUILT_PRODUCTS_DIR; };
@ -856,7 +854,6 @@
isa = PBXGroup;
children = (
97A1FD3D1D6F728200A80EE2 /* Extensions.swift */,
97A1FD3E1D6F728200A80EE2 /* FileManager.swift */,
97C601DD1D7F342100362D4F /* HTMLHeading.swift */,
97A1FD401D6F728200A80EE2 /* Preference.swift */,
97A1FD411D6F728200A80EE2 /* StringTools.swift */,
@ -1532,7 +1529,6 @@
97D681401D6F712800E5FA99 /* Book+CoreDataProperties.swift in Sources */,
9764CBD31D8083AA00072D6A /* ArticleOperation.swift in Sources */,
97A1FD421D6F728200A80EE2 /* Extensions.swift in Sources */,
97A1FD431D6F728200A80EE2 /* FileManager.swift in Sources */,
974F42821D47E19A00F8074C /* SettingWidgetBookmarksTBVC.swift in Sources */,
97A1FD3A1D6F724E00A80EE2 /* reader.cpp in Sources */,
97D681381D6F711A00E5FA99 /* Book.swift in Sources */,

View File

@ -84,6 +84,35 @@ extension NSFileManager {
let urls = try? NSFileManager.defaultManager().contentsOfDirectoryAtURL(NSFileManager.docDirURL, includingPropertiesForKeys: nil, options: options)
return urls ?? [NSURL]()
}
// MARK: - Backup Attribute
class func setSkipBackupAttribute(skipBackup: Bool, url: NSURL) {
guard let path = url.path else {return}
guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return}
do {
try url.setResourceValues([NSURLIsExcludedFromBackupKey: skipBackup])
} catch let error as NSError {
print("Set skip backup attribute for item \(url) failed, error: \(error.localizedDescription)")
}
}
class func getSkipBackupAttribute(item url: NSURL) -> Bool? {
guard let path = url.path else {return nil}
guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return nil}
var skipBackup: AnyObject? = nil
do {
try url.getResourceValue(&skipBackup, forKey: NSURLIsExcludedFromBackupKey)
} catch let error as NSError {
print("Get skip backup attribute for item \(url) failed, error: \(error.localizedDescription)")
}
guard let number = skipBackup as? NSNumber else {return nil}
return number.boolValue
}
}
extension UIDevice {

View File

@ -1,148 +0,0 @@
//
// FileManager.swift
// Kiwix
//
// Created by Chris Li on 3/28/16.
// Copyright © 2016 Chris. All rights reserved.
//
class FileManager {
// MARK: - Move Book
class func move(book: Book, fromURL: NSURL, suggestedFileName: String?) {
let fileName: String = {
if let suggestedFileName = suggestedFileName {return suggestedFileName}
return book.id
}()
let directory = NSFileManager.docDirURL
createDirectory(directory, includeInICloudBackup: false)
let destination = directory.URLByAppendingPathComponent(fileName)
moveOrReplaceFile(from: fromURL, to: destination!)
}
// MARK: - Book Resume Data
private class func resumeDataURL(book: Book) -> NSURL {
let tempDownloadLocation = NSURL(fileURLWithPath: NSFileManager.libDirURL.path!).URLByAppendingPathComponent("DownloadTemp", isDirectory: true)
return tempDownloadLocation!.URLByAppendingPathComponent(book.id ?? NSDate().description, isDirectory: false)!
}
class func saveResumeData(data: NSData, book: Book) {
let tempDownloadLocation = NSURL(fileURLWithPath: NSFileManager.libDirURL.path!).URLByAppendingPathComponent("DownloadTemp", isDirectory: true)
if !NSFileManager.defaultManager().fileExistsAtPath(tempDownloadLocation!.path!) {
do {
try NSFileManager.defaultManager().createDirectoryAtURL(tempDownloadLocation!, withIntermediateDirectories: true, attributes: [NSURLIsExcludedFromBackupKey: true])
} catch let error as NSError {
print("Create temp download folder failed: \(error.localizedDescription)")
}
}
data.writeToURL(resumeDataURL(book), atomically: true)
}
class func readResumeData(book: Book) -> NSData? {
guard let path = resumeDataURL(book).path else {return nil}
return NSFileManager.defaultManager().contentsAtPath(path)
}
class func removeResumeData(book: Book) {
if NSFileManager.defaultManager().fileExistsAtPath(resumeDataURL(book).path!) {
removeItem(atURL: resumeDataURL(book))
}
}
// MARK: - Contents of Doc Folder
class var zimFileURLsInDocDir: [NSURL] {
return [NSURL]()
}
// MARK: - Item Operations
class func itemExistAtURL(url: NSURL) -> Bool {
guard let path = url.path else {return false}
return NSFileManager.defaultManager().fileExistsAtPath(path)
}
class func removeItem(atURL location: NSURL) -> Bool {
var succeed = true
do {
try NSFileManager.defaultManager().removeItemAtURL(location)
} catch let error as NSError {
succeed = false
print("Remove File failed: \(error.localizedDescription)")
}
return succeed
}
class func moveOrReplaceFile(from fromURL: NSURL, to toURL: NSURL) -> Bool {
var succeed = true
guard let path = toURL.path else {return false}
if NSFileManager.defaultManager().fileExistsAtPath(path) {
succeed = removeItem(atURL: toURL)
}
do {
try NSFileManager.defaultManager().moveItemAtURL(fromURL, toURL: toURL)
} catch let error as NSError {
succeed = false
print("Move File failed: \(error.localizedDescription)")
}
return succeed
}
// MARK: - Dir Operations
class func createDirectory(url: NSURL, includeInICloudBackup: Bool) {
guard let path = url.path else {return}
do {
try NSFileManager.defaultManager().createDirectoryAtPath(path, withIntermediateDirectories: true, attributes: [NSURLIsExcludedFromBackupKey: true])
} catch let error as NSError {
print("Create Directory failed: \(error.localizedDescription)")
}
}
class func contentsOfDirectory(url: NSURL) -> [NSURL] {
do {
return try NSFileManager.defaultManager().contentsOfDirectoryAtURL(url, includingPropertiesForKeys: nil, options: .SkipsSubdirectoryDescendants)
} catch let error as NSError {
print("Contents of Directory failed: \(error.localizedDescription)")
return [NSURL]()
}
}
class func removeContentsOfDirectory(url: NSURL) {
for fileURL in contentsOfDirectory(url) {
removeItem(atURL: fileURL)
}
}
// MARK: - Backup Attribute
class func setSkipBackupAttribute(skipBackup: Bool, url: NSURL) {
guard let path = url.path else {return}
guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return}
do {
try url.setResourceValues([NSURLIsExcludedFromBackupKey: skipBackup])
} catch let error as NSError {
print("Set skip backup attribute for item \(url) failed, error: \(error.localizedDescription)")
}
}
class func getSkipBackupAttribute(item url: NSURL) -> Bool? {
guard let path = url.path else {return nil}
guard NSFileManager.defaultManager().fileExistsAtPath(path) else {return nil}
var skipBackup: AnyObject? = nil
do {
try url.getResourceValue(&skipBackup, forKey: NSURLIsExcludedFromBackupKey)
} catch let error as NSError {
print("Get skip backup attribute for item \(url) failed, error: \(error.localizedDescription)")
}
guard let number = skipBackup as? NSNumber else {return nil}
return number.boolValue
}
}