func nsurlForApplicationDirectory()->NSURL?{
let manager=NSFileManager.defaultManager()
let possibleURLs=manager.URLsForDirectory(NSSearchPathDirectory.AllLibrariesDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask) //look for the location of app support dir in user dormain
if let directoryURL=possibleURLs.first as? NSURL{ //pick the first one
directoryURL.URLByAppendingPathComponent(NSBundle.mainBundle().bundleIdentifier!) //This is this app application support directory
return directoryURL
}
return nil
}
func convertUrlToBookmark(url:NSURL,error:NSErrorPointer=nil)->NSData?{ //This data can be save
let bookmark=url.bookmarkDataWithOptions(NSURLBookmarkCreationOptions.SuitableForBookmarkFile, includingResourceValuesForKeys: nil, relativeToURL: nil, error: error)
if bookmark == nil || error != nil{
return nil
}
return bookmark
}
func filesInDirectory(directory:NSURL)->[NSURL]?{
if let contentsOfDirectory=contentsOfADirectory(directory){
var isDirectory:AnyObject?
var isPackage:AnyObject?
var error:NSError?
var listOfDirectories=NSMutableArray()
for url in contentsOfDirectory{
isDirectory=nil
isPackage=nil
error=nil
url.getResourceValue(&isDirectory, forKey: NSURLIsDirectoryKey, error: &error)
if (isDirectory != nil && error != nil){
error=nil
url.getResourceValue(&isPackage, forKey: NSURLIsPackageKey, error: &error)
if (isPackage != nil && error != nil){
listOfDirectories.addObject(url)
}
}
}
return listOfDirectories as NSArray as? [NSURL]
}
return nil
}
func contentsOfADirectory(directory:NSURL)->[NSURL]?{
let manager=NSFileManager.defaultManager()
let keysToReturn=[NSURLIsDirectoryKey,NSURLIsPackageKey,NSURLLocalizedNameKey]
let directoryEnumerator=manager.enumeratorAtURL(directory, includingPropertiesForKeys: keysToReturn, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles | NSDirectoryEnumerationOptions.SkipsSubdirectoryDescendants){
(url,error) in
return true
}
return directoryEnumerator?.allObjects as? [NSURL]
}
func convertDataToUrl(data:NSData,error:NSErrorPointer=nil)->NSURL?{
var bookmarkIsStale=ObjCBool(false)
let url=NSURL(byResolvingBookmarkData: data, options: NSURLBookmarkResolutionOptions.WithoutUI, relativeToURL: nil, bookmarkDataIsStale: &bookmarkIsStale, error: error) //convert the data to url
if bookmarkIsStale.boolValue || error != nil{ // if error occured or bookmarkIsStale,return
return nil
}
return url
}
Last active
August 29, 2015 14:12
-
-
Save simplytunde/8cabbbbd004186a7a854 to your computer and use it in GitHub Desktop.
File System Program Guide
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment