如何使用 C# 在 win 应用程序中保存 "cookies"

How to save "cookies" in win application with C#

我尝试使用 streamwriter 在 .txt 文件中写入一些数据,而不是将它们用作 cookie

var writer = new System.IO.StreamWriter(Application.StartupPath + "\Cookies\cookies.txt");

但是我从.exe文件安装应用程序并执行后,它显示错误"Access is denied in path ..."

我不确定问题是出在我想用作 cookie 文件的文件路径中,还是在创建应用程序安装 MSI/Setup 的过程中,即使我在应用程序中包含 Cookies 文件夹。

您有什么建议是在 win 应用程序中保存 "cookies" 的最佳做法吗?

首先,您确定所需的文件夹位于正确的文件夹结构下吗?因为 StartupPath 会 return 你的 exe 文件的路径?

似乎你的源代码在某个允许写入文件的地方,但是当你运行你的exe文件时,执行的位置不允许写入文件。因为您在 exe 执行路径中写入文件,所以文件写入权限取决于该执行位置。如果您从允许文件写入的位置执行 exe,它不会抛出异常,如果不允许文件写入的位置,那么它将抛出异常。所以我的建议是使用允许的静态位置,用户有文件写入权限,比如 AppDataDocuments 如下

var writer = new System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\Cookies\cookies.txt");

var writer = new System.IO.StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\Cookies\cookies.txt");

希望对您有所帮助