mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-26 05:18:31 -04:00
FileManage removed
This commit is contained in:
parent
c436aab3a8
commit
3dc728be2f
@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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 */,
|
||||
|
@ -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 {
|
||||
|
@ -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
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user