65.9K
CodeProject 正在变化。 阅读更多。
Home

Mozilla Firefox 的书签合并器

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (3投票s)

2006年11月29日

viewsIcon

36455

downloadIcon

396

合并 Firefox 格式的多个文件中的书签。

Sample Image

引言

我找不到一个简单的工具来同步我在工作和家里的 Firefox 书签,所以最终我决定自己编写代码。

这段代码的功能并不多(也不复杂),但它在一定程度上解决了这个问题:程序读取 Firefox 的“bookmarks.html”文件,并将其视为一组节点。

使用代码

只需在 VS2005 或其他合适的工具中启动解决方案,主要引擎可以在 MozillaLinkMerger.cs 中的合并循环中找到。 确定要用作主文件的文件,以及要合并到主文件中的一些从属文件。不用担心,原始主文件会以不同的名称(GUID)保存。

public void Merge()
{
    if (Stopped)
        return;

    //operation 1, read and parse master file
    string[] masterFileLines = 
       System.IO.File.ReadAllLines(_masterLinksFilePath);
    MozillaFile masterFile = new MozillaFile(masterFileLines);
    IncrementProgress();
    if (Stopped)
        return;

    //operation 2 - x, for each slave file read and parse links
    //run through each slave file
    foreach (string slaveFile in _slaveFiles)
    {
        string[] slaveFileLines = 
                 System.IO.File.ReadAllLines(slaveFile);
        MozillaFile slave = new MozillaFile(slaveFileLines);

        masterFile.Merge(slave);

        this.TotalNumberOfNewLinksFound = 
             masterFile.NumberOfNewLinksFound;

        IncrementProgress();
        if (Stopped)
            return;
    }
    if (RemoveDuplicates)
    {
        masterFile.RemoveDuplicateLinks();
    }

    //finally operation x + 1, print file to disk
    masterFile.Save(_mergedLinksFilepath);

    _isDone = true;
    IncrementProgress();
}

关注点

好吧,我尽量保持简单。 如果您熟悉正则表达式,您可能会找到更好的方法来识别 Firefox 书签中的链接和文件夹。 我不太喜欢写很多注释,所以希望代码能够自解释。

Mozilla Firefox 书签合并器 - CodeProject - 代码之家
© . All rights reserved.