Sketch插件中NSFileManager的意外响应

时间:2017-05-05 18:18:44

标签: cocoa plugins sketch-3

我发布了一个Sketch插件,其中包含一些在文件管理方面具有强大依赖性的功能。

执行时,插件需要检查文件夹是否存在,如果不存在,则创建,然后管理此目录中的多个文件。

几周前,有一位用户报告插件在新的Sketch版本中崩溃了。

来自:

的意外回应
  • assets = new AssetManager(); assets.load("3d/tankbody6.obj", Model.class); loading = true; assets.finishLoading() return -folder不存在 - 当该路径中实际存在时
  • fileExistsAtPath在尝试创建一个不存在的文件夹时返回'错误'(我已经在文件夹存在时进行了测试而不是)

快速举例:

请求

createDirectoryAtPath

响应

var document = context.document
var documentName = document.displayName()
var documentFolderPath = decodeURIComponent(document.fileURL()).replace('file:///','').replace(documentName,"")

print(documentName)
print(documentFolderPath)

var translationsFolderName = documentName.replace('.sketch','_translations')
var translationsFolderPath = documentFolderPath+translationsFolderName+'/'

print(translationsFolderName)
print(translationsFolderPath)

var fileManager = [NSFileManager defaultManager];

if(![fileManager fileExistsAtPath:translationsFolderPath isDirectory:'YES'])
{
   print(translationsFolderPath+" folder does not exist")
   if(![fileManager createDirectoryAtPath:translationsFolderPath withIntermediateDirectories:'YES' attributes:nil error:nil])
    {
       print(translationsFolderPath+" folder can't be created")
    }
}

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您的文件路径未植根(不以/开头)