Last active
April 30, 2024 10:02
-
-
Save abynim/04fd575a7e63ae2908a9 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
please add it to https://github.com/turbobabr/Sketch-Plugins-Cookbook