Xamarin.Mac/plistファイルを読み書きする

提供: MonoBook
移動: 案内検索

概要[編集]

Mac OS Xではプロパティリスト(plistファイル)と呼ばれるデータを読み書きする際の標準形式が存在する。 このプロパティリストはMac OS Xでのプログラミングでは避けては通ることができないと思われる。

プロパティリストの拡張子はplist一種類だが中身の形式は大きく分けて以下の3種類がある。

  • NeXTSTEP
  • Binary
  • XML

このプロパティリストを扱う方法は複数が存在するようだが、それぞれ対応する「読める」および「書ける」形式が若干異なるようだ。

方法:NSDictionaryで読み書きする[編集]

NSDictionary.FromFileメソッドで読み込み、NSDictionary.WriteToFileメソッドで書き込むだけである。読み込みはバイナリ形式もXML形式も自動で判別し適切に処理してくれる。書き込みは問答無用でXML形式となる。

using System;
using System.IO;
using MonoMac.Foundation;
using MonoMac.AppKit;
 
namespace DockAccess
{
    class MainClass
    {
        static void Main(string[] args)
        {
            NSApplication.Init();
 
            // Dock情報が格納されているplistファイルのパス
            var file = Path.Combine(
                           Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
                           "Library/Preferences/com.apple.dock.plist");
            Console.WriteLine(file);
 
            // 読み込む
            var dic = NSDictionary.FromFile(file);
            Console.WriteLine(dic);
 
            // 書き込む
            dic.WriteToFile(file + ".tmp");
        }
    }
}

関連項目[編集]

参考文献[編集]