Cocoa Swift, получить / установить скрытый флаг для файлов и каталогов

Я хочу проверить, имеет ли файл или каталог в файловой системе определенный флаг, в этом случае флаг «скрытый», а затем установить или удалить его. Я знаю, что это возможно через командную строку, но мне было интересно, смогу ли я сделать это с Cocoa / Swift?

Я пытался с помощьюNSFileManager attributesOfItemAtPath, но возвращаемый объект не содержит флагов.

пример:

let fm = NSFileManager.defaultManager()

do {
    let testLibrary = try fm.attributesOfItemAtPath(dataPath)
    print (testLibrary)
} catch let error as NSError {
    print("JSON Error: \(error.localizedDescription)")
}

возвращает:

["NSFileCreationDate": 2013-08-16 21:37:57 +0000,
 "NSFileGroupOwnerAccountName": staff, 
 "NSFileType": NSFileTypeDirectory, 
 "NSFileSystemNumber": 16777220, 
 "NSFileOwnerAccountName": xjx, 
 "NSFileReferenceCount": 61, 
 "NSFileModificationDate": 2015-10-22 07:25:12 +0000, 
 "NSFileExtensionHidden": 0, 
 "NSFileSize": 2074,
 "NSFileGroupOwnerAccountID": 20, 
 "NSFileOwnerAccountID": 501, 
 "NSFilePosixPermissions": 448, 
 "NSFileSystemFileNumber": 603923]

Для сравнения, когда я делаюls -lO в моем домашнем каталоге я вижу следующее (обратите внимание на скрытый флаг на «Библиотеке»):

drwx------+ 49 xjx  staff  -        1666 Jan 11 19:43 Downloads
drwx------@ 28 xjx  staff  -         952 Jan 11 08:40 Dropbox
drwx------@ 61 xjx  staff  hidden   2074 Oct 22 09:25 Library
drwx------+  7 xjx  staff  -         238 Apr 30  2015 Movies
drwx------+  5 xjx  staff  -         170 Jun 14  2015 Music

Ответы на вопрос(3)

Ваш ответ на вопрос