Forked from abynim/Sketch Plugin Snippet - Managing Files.js
Created
February 13, 2019 22:09
-
-
Save eeropic/80df38505238ec6ebedd7016d3a864e2 to your computer and use it in GitHub Desktop.
Sketch Plugin functions for working with files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var writeTextToFile = function(text, filePath) { | |
var t = [NSString stringWithFormat:@"%@", text], | |
f = [NSString stringWithFormat:@"%@", filePath]; | |
return [t writeToFile:f atomically:true encoding:NSUTF8StringEncoding error:nil]; | |
} | |
var readTextFromFile = function(filePath) { | |
var fileManager = [NSFileManager defaultManager]; | |
if([fileManager fileExistsAtPath:filePath]) { | |
return [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil]; | |
} | |
return nil; | |
} | |
var jsonFromFile = function(filePath, mutable) { | |
var data = [NSData dataWithContentsOfFile:filePath]; | |
var options = mutable == true ? NSJSONReadingMutableContainers : 0 | |
return [NSJSONSerialization JSONObjectWithData:data options:options error:nil]; | |
} | |
var saveJsonToFile = function(jsonObj, filePath) { | |
writeTextToFile(stringify(jsonObj), filePath); | |
} | |
var stringify = function(obj, prettyPrinted) { | |
var prettySetting = prettyPrinted ? NSJSONWritingPrettyPrinted : 0, | |
jsonData = [NSJSONSerialization dataWithJSONObject:obj options:prettySetting error:nil]; | |
return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; | |
} | |
var createTempFolderNamed = function(name) { | |
var tempPath = getTempFolderPath(name); | |
createFolderAtPath(tempPath); | |
return tempPath; | |
} | |
var getTempFolderPath = function(withName) { | |
var fileManager = [NSFileManager defaultManager], | |
cachesURL = [[fileManager URLsForDirectory:NSCachesDirectory inDomains:NSUserDomainMask] lastObject], | |
withName = (typeof withName !== 'undefined') ? withName : (Date.now() / 1000), | |
folderName = [NSString stringWithFormat:"%@", withName]; | |
return [[cachesURL URLByAppendingPathComponent:folderName] path]; | |
} | |
var createFolderAtPath = function(pathString) { | |
var fileManager = [NSFileManager defaultManager]; | |
if([fileManager fileExistsAtPath:pathString]) return true; | |
return [fileManager createDirectoryAtPath:pathString withIntermediateDirectories:true attributes:nil error:nil]; | |
} | |
var removeFileOrFolder = function(filePath) { | |
[[NSFileManager defaultManager] removeItemAtPath:filePath error:nil]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment