/// <summary>
        /// インデックス一覧をファイルに保存
        /// </summary>
        public void Save()
        {
            StreamWriter sw = null;

            try {
                sw = new StreamWriter(fileName, false, TwinDll.DefaultEncoding);
                foreach (ThreadHeader header in items)
                {
                    if (ThreadIndexer.Exists(cache, header))
                    {
                        // 相対パスに変換
                        string relative = Shlwapi.GetRelativePath(
                            Application.StartupPath, cache.GetIndexPath(header));

                        sw.WriteLine(relative);
                    }
                }
            }
            finally {
                if (sw != null)
                {
                    sw.Close();
                }
            }
        }