c# - 为什么我的应用程序试图读取错误文件夹中的对象?
问题描述
我正在使用 Visual Studio 来完成我的第一个完整应用程序版本,这是一个简单的 WPF GUI,用于配置本地保存的 JSON 对象,以及一个在后台运行的控制台应用程序,使用来自该对象的数据来监视网站。我将每个项目发布到一个测试文件夹(我们会说 Publish/),每个应用程序清单现在都驻留在该文件夹中,以及一个包含每个项目的另一个子文件夹的“应用程序文件”文件夹。
我让应用程序运行得很好 - 问题是配置文件保存到一个文件夹中的几个级别到 C:\Users\username\AppData\Local\Apps\2.0\ 并且控制台应用程序正在尝试从一个完全单独的文件夹。两个项目都使用 GetCurrentDirectory() 作为文件路径进行读写。有没有办法解决这个问题?
检索 JSON 对象的代码
try
{
//Confirms file exists
if (File.Exists(Directory.GetCurrentDirectory().ToString() + filePath))
{
//Initialize json variable to a string, then deserialize it into an instance of RCDetails
var json = File.ReadAllText(Directory.GetCurrentDirectory().ToString() + filePath);
RCDetails parsedDetails = JsonConvert.DeserializeObject<RCDetails>(json);
//Return deserialized JSON
return parsedDetails;
}
else return null;
以及编写json对象的代码
public void WriteToFile(RCDetails rcd)
{
//Serialize input instance of RCDetails class
string JSONresult = JsonConvert.SerializeObject(rcd, Formatting.Indented);
//Remove old JSON object
if (File.Exists(Directory.GetCurrentDirectory().ToString() + jsonFilePath))
File.Delete(Directory.GetCurrentDirectory().ToString() + jsonFilePath);
//Create new JSON object with updated details
File.WriteAllText(Directory.GetCurrentDirectory().ToString() + jsonFilePath, JSONresult);
}
发布项目的具体步骤:
- 选择控制台应用程序后,单击构建 > 发布(控制台应用程序名称)
- 浏览到 C:\Users\username\Downloads\Publish\
- 安装时,选择“从 CD-ROM 或 DVD-ROM”
- 选择“应用程序将不检查更新
- 选择完成,并使用相同的文件路径重复所有步骤以配置 WPF
我最终找到了解决方案(如果这是一个糟糕的计划,请随时告诉我)。我只是将它放入两个应用程序中。
string s = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\IntendedFolder";
if (!Directory.Exists(s))
Directory.CreateDirectory(s);
Directory.SetCurrentDirectory(s);
解决方案
推荐阅读
- ionic-framework - 离子标题上 getText() 的脚本超时
- python - 计算四分位数不准确
- django - 更改来自 Django Allauth 的默认警报消息?
- zeromq - ZeroMq PUSH/PULL 确保 PUSH 队列为空
- javascript - 仅当不存在参数时才在页面加载时向 url 添加参数
- php - Laravel 在 trait 中使用 trait 不起作用
- java - 从Java目录中获取每个文件
- c - AF_XDP - 用户空间程序继续接收 `ping` 数据包,即使内核中的`XDP_DROP`
- node.js - 在 SFTP 内部循环承诺不会将文件数据下载到本地文件?
- wordpress - WordPress 会自动生成标签吗?