【C#】Winform NanUI 0.77版本 清除Cookie等本地缓存
目录
需求
清除web前端保存的一些的数据,或者清除浏览器缓存会用到。
NanUI0.88版本的缓存路径
在NanUI0.88版本中,只要在Program.cs启动模块中调用app.ClearCacheFile();就可以清除浏览的缓存了。
0.88版本的缓存路径:
"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Studio\\NanUI\\NanUI088_SourceCode"
参考NanUI0.88源码,可以看到,实现这个功能,是在初始化框架之前,删除了项目的缓存文件夹
源码 ApplicationConfigurationBuilderExtensions.cs 脚本下的ClearCacheFile方法
文件夹:
NanUI0.77版本的缓存路径
通过Bootstrap.cs 中 CacheDirectory 属性得出了缓存路径:
"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Studio\\NanUI\\NanUI077_SourceCode\\Cache"
这里可以看到,对比0.88版本,多了一个Cache文件夹,直接将其去掉,这样就和0.88版本的路径一样了
/// <summary> /// Get the cache path of Chromium /// 获取Chromium的缓存路径,缓存目录用于存放 Chromium 的零时数据, /// 包含了浏览记录、Cookies 数据、LocalStorage 数据等。通常该目录位于应用程序数据目录中。 /// </summary> public static string CacheDirectory { //get => Path.Combine(ApplicationDataDirectory, "Cache"); get => ApplicationDataDirectory; }
试着实现功能
知道这个原理,那么我们直接删除这个文件夹可以了吗?是的,手动删除这个文件夹没有问题,启动程序依然正常。
但是你如果用代码删除,在Bootstrap.cs中加入下面代码
/// <summary> /// 清除Cookies等缓存数据 /// </summary> /// <returns></returns> public static void DeleteCacheDirectory() { if (System.IO.Directory.Exists(CacheDirectory)) { System.IO.Directory.Delete(CacheDirectory, true); } }
添加扩展出现的问题
在 Main 方法中调用 Bootstrap.DeleteCacheDirectory() 那么就会出现,鼠标图标不停的转圈,页面根本加载不出来,页面一片白板。
这个不行?那么,用另外一种方法,在程序退出的时候,或者在界面加载的时候,删除缓存路径不就行了?调用Bootstrap.DeleteCacheDirectory(),运行,结果就可能出现下面错误
The process cannot access the file 'Visited Links' because it is being used by another process.
显示内存已经被占用,好家伙。
解决问题
后面我查了很多的帖子,用下面的方法解决了问题,
使用CommandLine 命令,禁止浏览器进行缓存:
cmd.AppendSwitch("disable-application-cache");
cmd.AppendSwitch("disable-session-storage");
经过测试,Cookie一类的数据,使用JS设置是无法保存的。
如果你有更好的方法,欢迎给我留言...
using NetDimension.NanUI; using System; using System.Threading; using System.Windows.Forms; using Utils; namespace NanUI077_SourceCode { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Bootstrap .Initialize() //读取本地资源 .UseClockResourceHandler(ResourceHandlerScheme.Http, "www.app.local", "View") .WithChromiumCommandLineArguments((procesName, cmd) => { // 在此处处理CEF的命令行参数 cmd.AppendSwitch("disable-application-cache"); cmd.AppendSwitch("disable-session-storage"); }) .WithChromiumSettings(settings => { // 在此处处理CEF的设置 }) .WhenLibCefNotFound(args => { // 如果NanUI启动器没有检测到正确的CEF以及ChromiumFX运行环境,将执行此处理过程。 MessageBox.Show("没有检测到Chromium Embedded运行环境,请确认libcef环境配置正确。", "libcef.dll is not found", MessageBoxButtons.OK, MessageBoxIcon.Error); }) .Run(() => { return new MainIndex(); }); } } }
CommandLine 命令,官方的地址:List of Chromium Command Line Switches « Peter Beverloo
结束
如果这个帖子对你有用,欢迎 关注 + 点赞 + 留言,谢谢
end
原文链接Winform NanUI 0.77版本 清除Cookie等本地缓存_winform appdata-CSDN博客
猜你喜欢
- 【C#】C#md5加密
- using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace mdstr { internal
- 【C#】C# Winfrom 右键菜单
- 目录一、概述二、新建 winform 项目三、给图片控件添加右键菜单四、给菜单添加点击事件五、测试结束一、概述ContextMenuStrip 是 Windows 窗体应用程序中的一个控件,它提供了一个弹出菜单,用于在用户右键单击控件或其他界面元素时显示上下文相关的选项。它通常用于在图形用户界面中提供快捷操作和功能。ContextMenuStrip 控件可以通过在 Visual Studio 的设计器中拖放方式添加到窗体上,或者通过编程方式创建和配置。它可以与其他控件(如按钮、文本框等
- 【C#】C#Windows桌面应用开发实践
- 速览必须功能一览简单下载异步下载如何解决下载文件不完整的问题使用 Downloader 进行 HTTP 多线程下载创建一个下载服务:下载非 HTTP 协议的文件注册表相关的操作(添加与删除)文件占用问题的处理防止重复启动只开一个实例,通用弹窗和提示 使用示例使用 C# 下载文件 (引用自使用 C# 下载文件的十八般武艺)常用接口示例必须功能一览注册表相关的操作(添加与删除) RegistryKey hkm
- 【C#】C# Winform 自定义进度条ProgressBar
- 效果:一、前言Winfrom各种老毛病真的不适合做大型项目,甚至中型项目都不适合,一些小功能都能把你折腾半死,比如,我想在界面上显示一个进度条,用来显示现在硬盘和内存已经使用了多少,使用了 ProgressBar 控件你看看效果:进度条中间一直有个白色光影在晃来晃去的,是不是想让别人感慨:“哇!好强的光芒,我的眼睛快睁不开了...”。而且背景颜色无法改变,这个动画也无法关掉,为了解决这两个问题,我找了很久,终于找到了下面的解决方法。二、自定义进度条于是我在网上找了一些资料,有到效果有,但不是特别
- 【C#】从零开始用C#写一个桌面应用程序(二)一个表白程序
- 恶搞表白小程序如何添加按钮,如何添加属性和事件请移步前文。基础操作第一步:新建窗口 在工具箱内找到label和button,拖到form上,设置它们的size属性,autosize属性,text属性。第二步:添加事件为了实现我们的效果,需要给三个按钮分别设计点击事件,鼠标移入事件,鼠标点下事件。分别为click,mouseenter,mousedown事件。第三步:实现移动逻辑this获取form对象,clientsize获取实时大小,使用随机数值,设置对应按钮位置。将对应
- 【C#】C# Winform 多个程序之间的通信(非Scoket)
- 效果功能:打开窗体自动连接主程序,并自动添加到列表,可以向子程序群发消息可以向单个程序单独发送消息在退出程序后,添加的程序列表会自动移除一、概述参考:C# Winfrom程序之间通讯_c# sendmessege copydatastruct 返回多个值_熊思宇的博客-CSDN博客在之前我写过 winform 程序与程序之间的通信,但是这个版本有个问题,那就是只能由两个程序进行通信,同时打开多个程序的话,接收方收到的数据就会一模一样,这次发表这个教程,也就是要解决这个问题。归根结底,还是&nbs
- 【C#】C# Winform GDI+ 绘图
- 目录一、概述二、绘图1.画直线2.画矩形3.画圆、圆弧4.画扇形5.画多边形6.绘制字符串7.填充图形结束一、概述Graphics类是GDI+技术的一个基本类。GDI+(Graphics Device Interface)是.NET框架的重要组成部分,提供对二维图形图像和文字排版处理的支持。GDI+相关的类分布在下列命名空间中: System.Drawing:提供了最基本的绘图功能(比如画直线、矩形、椭圆等); System.Drawing.Drawing2D: 提供了高级的二维和矢量绘图功能(
- 【C#】Winform NanUI 0.77版本 清除Cookie等本地缓存
- 目录需求NanUI0.88版本的缓存路径NanUI0.77版本的缓存路径试着实现功能添加扩展出现的问题解决问题结束需求清除web前端保存的一些的数据,或者清除浏览器缓存会用到。NanUI0.88版本的缓存路径在NanUI0.88版本中,只要在Program.cs启动模块中调用app.ClearCacheFile();就可以清除浏览的缓存了。0.88版本的缓存路径:"C:\\Users\\Administrator\\AppData\\Roaming\\Net Dimension Stu