C# 获取Google Chrome的书签
其实这个很简单,就是读取一个在用户目录里面的一个Bookmarks文件就好了。
先建立几个实体类
public class GoogleChrome_bookMark_meta_info
{
public string last_visited_desktop { get; set; }
} public class GoogleChrome_BookMark_children
{
public string date_added { get; set; }
public string id { get; set; }
public GoogleChrome_bookMark_meta_info meta_info { get; set; }
public string name { get; set; }
public string type { get; set; }
public string url { get; set; }
public List<GoogleChrome_BookMark_children> children { get; set; } } public class GoogleChrome_BookMark_bookmark_bar_other_synced
{
public string date_added { get; set; }
public string date_modified { get; set; }
public string id { get; set; }
public string name { get; set; }
public string type { get; set; }
public List<GoogleChrome_BookMark_children> children { get; set; }
} public class GoogleChrome_BookMark_roots
{
public GoogleChrome_BookMark_bookmark_bar_other_synced bookmark_bar { get; set; }
public GoogleChrome_BookMark_bookmark_bar_other_synced other { get; set; }
public GoogleChrome_BookMark_bookmark_bar_other_synced synced { get; set; }
} public class GoogleChrome_BookMarkAllModel
{
public string checksum { get; set; }
public GoogleChrome_BookMark_roots roots { get; set;}
public string version { get; set; }
}
具体实现
static void Main(string[] args)
{
///建几个Bookmarks 的实体类(Model)用来承载数据
//获取由指定枚举标识的系统特殊文件夹的路径 ,, 其实就是读取用户目录下的Google Chrome 的Bookmarks 文件。
string ChromeDatePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+@"\Google\Chrome\User Data\Default";
string ChromeBookMarksPath = ChromeDatePath + @"\Bookmarks";
if (File.Exists(ChromeBookMarksPath))
{
Console.WriteLine("Chrome浏览器书签文件存在");
}
else
Console.WriteLine("未找到Chrome浏览器书签");
Console.WriteLine(ChromeBookMarksPath);
StreamReader sr = new StreamReader(ChromeBookMarksPath);
string str = "";
while (!sr.EndOfStream)
{
str += sr.ReadLine();
}
sr.Close();
string str2 = System.Text.RegularExpressions.Regex.Replace(str, "\\s*|\t|\r|\n", ""); //去空格、回车符
Console.WriteLine(str2);
//转为JSON格式
var obj = JsonConvert.DeserializeObject<GoogleChrome_BookMarkAllModel>(str2);
if (obj.roots.bookmark_bar != null)
ShowChildren(, obj.roots.bookmark_bar.children);
Console.ReadKey(); } /// <summary>
/// 输出书签节点
/// </summary>
/// <param name="index">其实是没有用的,为了好看</param>
/// <param name="children">书签集合</param>
public static void ShowChildren(int index, List<GoogleChrome_BookMark_children> children)
{
foreach (var l in children)
{
Console.WriteLine("");
Console.WriteLine(GetTreeStr(index) + "书签ID:" + l.id);
Console.WriteLine(GetTreeStr(index) + "书签名称:" + l.name);
Console.WriteLine(GetTreeStr(index) + "书签类型:" + l.type);
if (l.type == "folder")
{
Console.WriteLine(GetTreeStr(index) + l.name + "是文件夹,文件夹下标签数量为:" + l.children.Where(w => w.type == "url").Count()
+ "文件夹数量为:" + l.children.Where(w => w.type == "folder").Count());
Console.WriteLine(GetTreeStr(index) + l.name + "目录下内容");
}
else
Console.WriteLine(GetTreeStr(index) + "书签url:" + l.url);
}
} /// <summary>
/// 为了好看
/// </summary>
/// <param name="index">随便什么int数</param>
/// <returns></returns>
public static string GetTreeStr(int index)
{
string str = "";
for (int i = ; i < index; i++)
{
str += "...";
}
str += "L";
return str;
}
C# 获取Google Chrome的书签的更多相关文章
- google chrome 浏览器书签丢失问题
在一次新打开标签页时,电脑卡死,强制重启后打开google chrome 浏览器,发现历史什么的都在,但书签栏全部丢失了 找到 系统盘:\Users\用户名\AppData\Local\Google\ ...
- 一个获取google chrome扩展crx文件信息的PHP操作类
此类中实现了从crx文件获取扩展的Appid.获取manifest.json文件内容.将crx文件转换为一般zip文件 代码如下: <?php class CrxParserException ...
- [C#]Google Chrome 书签导出并生成 MHTML 文件
目的 因为某些原因需要将存放在 Google Chrome 内的书签导出到本地,所幸 Google Chrome 提供了导出书签的功能. 分析 首先在 Google Chrome 浏览器当中输入 ch ...
- Google Chrome 书签导出并生成 MHTML 文件
目的 因为某些原因需要将存放在 Google Chrome 内的书签导出到本地,所幸 Google Chrome 提供了导出书签的功能. 分析 首先在 Google Chrome 浏览器当中输入 ch ...
- google chrome 删除重复的书签 about sync
之前 由于 谷歌 同步的不智能,且不询问用户同步方法和细节,导致我的书签包括了大量重复的书签,想去除重复的书签. 由于谷歌书签文件 存储在:C:\Documents and Settings\Admi ...
- 15个你不知道的杀手级Google Chrome功能
之前写过一篇我为什么使用Google Chrome浏览器,算是在使用了一段时间的Google Chrome后的一点粗浅认识,最近读到一篇文章15 Killer Google Chrome Featur ...
- 浅谈Google Chrome浏览器(理论篇)
注解:各位读者,经博客园工作人员反馈,hosts涉及违规问题,我暂时屏蔽了最新hosts,若已经获取最新hosts的朋友们,注意保密,不要外传.给大家带来麻烦,对此非常抱歉!!! 开篇概述 1.详解g ...
- 详解google Chrome浏览器(理论篇)
注解:各位读者,经博客园工作人员反馈,hosts涉及违规问题,我暂时屏蔽了最新hosts,若已经获取最新hosts的朋友们,注意保密,不要外传.给大家带来麻烦,对此非常抱歉!!! 开篇概述 1.详解g ...
- Google Chrome 浏览器的备用(离线)安装程序
Google Chrome 浏览器的备用(离线)安装程序(适用于 Windows) 如果您在使用 http://www.google.com/chrome 上的标准安装程序下载 Chrome 浏览器时 ...
随机推荐
- 不使用三方包时,如何在ThinkSNS中建立优雅的用户权限管理
什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).Thin ...
- EOS帐户交易的构建命令
EOS版本:4.0 系统:Ubuntu 16.04 LTS 1.创建两对密匙 cleos create key Private key:5JeTwSwKfpVRHGLqysakTXfk ...
- github最火的springboot开源学习资料
https://github.com/JeffLi1993/springboot-learning-example https://github.com/ityouknow/spring-boot-e ...
- linux 01 基础命令
linux 01 基础命令 对于Linux要记住一个概念,一切皆文件,哪怕是目录,也是一个文件 1.修改用户密码 sudo passwd pyvip@Vip:~$ #pyvip表示用户名, Vip表示 ...
- Luogu P3384 【模板】树链剖分
...rt...安利一发大佬博客https://www.cnblogs.com/ivanovcraft/p/9019090.html 注意:不要把dfn和rw弄混了... #include<cs ...
- [洛谷P4315] 月下”毛景“树
题目链接: 点我 题目分析: 树剖.将边权下放到下方点上(为什么要选深度更深的点?一个父亲可能对应多个儿子,但一个儿子只有一个父亲,即可以保证每个点只保存一条边权)成为经典点权+树剖裸题 注意链计算时 ...
- NET Core 2.0 的 REST API
用ASP.NET Core 2.0 建立规范的 REST API -- 预备知识 (2) + 准备项目 上一部分预备知识在这 http://www.cnblogs.com/cgzl/p/9010978 ...
- NET Core 2.0 介绍和使用
NET Core 2.0 特性介绍和使用指南 阅读目录 前言 特性概述 使用指南 .NET Core 2.0和1.0/1.1之间的关系 .NET CORE Rumtime改进 .NET Core SD ...
- nginx超时问题
一. 戏说不管你是做运维还是做开发,哪怕你是游客,时不时会遇到502 Bad Gateway或504 Gateway Time-out.出现这页面,把服务重启下,再实在不行重启下服务器,问题就解决了, ...
- Java输入输出流简单案例
package com.jckb; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io. ...