-1
我發佈了一個Sketch插件,其中包含一些強大的文件管理依賴功能。Sketch插件中NSFileManager的意外響應
執行時,插件需要檢查文件夾是否存在,如果不存在,創建並管理該目錄中的多個文件。
幾個星期前,一個用戶報告的插件崩潰在一個新的草圖版本。
從意外的響應:
fileExistsAtPath
返回該路徑createDirectoryAtPath
回報「錯誤」試圖創建一個不存在的文件夾時(我已經測試確實存在時-folder不exist-既當文件夾存在,而不是)
簡單的例子:
請求
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")
}
}
響應
test.sketch
Users/myuser/Documents/
test_translations
Users/myuser/Documents/test_translations/
Users/myuser/Documents/test_translations/ folder does not exist
Users/myuser/Documents/test_translations/ folder can't be created
Script executed in 0.034733s
任何想法?
謝謝!
固定/開頭,但很奇怪...插件是之前並且沒有 – laresgoiti
感謝傑夫·萊恩工作測試! – laresgoiti
在Xcode中測試並不總是會揭示這類問題。您的應用程序從文件系統中的其他目錄開始。 –