0

を使用していくつかのオブジェクトをファイルに保存していますKey Value Coding。保存したファイルの拡張子を非表示にしたい (または、Finder → 環境設定 → 詳細設定の [すべてのファイル拡張子を表示] の値が true でない限り、少なくとも非表示にする) ようにしたいのですが、うまくいきません。

私は次のようにファイルを保存しています:

let saveDialog  = NSSavePanel()
        saveDialog.allowedFileTypes = ["purr"]

        saveDialog.beginWithCompletionHandler() { (result: Int) -> Void in
            if result == NSFileHandlingPanelOKButton {


                NSFileManager.defaultManager()
                    .createFileAtPath(saveDialog.URL!.path!, contents: NSData(), attributes: [NSFileExtensionHidden: NSNumber(bool: true)])
                let _ = NSKeyedArchiver.archiveRootObject(safePhrases, toFile: saveDialog.URL!.path!)
            }
        }

        return saveDialog.URL

ただし、保存したファイルを Finder で表示すると、拡張子は常に表示されます。どうすればこれを解決できますか?

4

1 に答える 1

2

Willeke の提案の後、 を使用して、ファイルを書き込んだ後に属性を設定しましNSFileManagersetAttributes:ofItemAtPath:error

do { try NSFileManager.defaultManager().setAttributes
    ([NSFileExtensionHidden: NSNumber(bool: true)], ofItemAtPath: saveDialog.URL!.path!) } 

catch _{ Swift.print("Unable to hide extension") }
于 2016-07-21T05:08:33.667 に答える