【优化】C#小程序集成实现python定时段批量下载电子邮箱附件的bug排除

简介: 【优化】C#小程序集成实现python定时段批量下载电子邮箱附件的bug排除

目录

1、测试问题与现象

2、排查和发现

3、bug危害和改正措施


继上一篇长文(

python实现电子邮件附件指定时间段,批量下载以及C#小程序集成实现_nanke_yh的博客-CSDN博客

https://blog.csdn.net/nanke_yh/article/details/120818221

)中所实现的程序之后,进行了相关的应用和测试,发现了一些bug,这些bug导致的问题比较严重,在这里进行排除和优化。


1、测试问题与现象


将程序拷贝至其他机器进行脱环境测试运行,发现存在秒运行结束现象,然后无文件输出。


2、排查和发现


首先怀疑是python开发的exe在新机器运行失败:直接使用cmd调用exe程序,发现运行结果正常;


再就是检查从c#端输入的参数是否正确:依次检查,发现默认截止日期,textBox5.Text上输出的日期为7位数,因为是月初,day位单数,那么其中的0被省略了。之前的代码:

textBox5.Text = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();+ DateTime.Now.Day.ToString();;

那么会导致这种现象,但是并不是导致秒运行结束的原因。因为手动输入截止日期还是存在秒运行结束的问题。


最后再次检查发现是保存路径下其中有个文件夹名内使用了空格:更改路径后正常,如此定位该问题所在。


3、bug危害和改正措施


在上面发现了两个bug,第一是截止日期中单月单日会被省略0字符。这将会导致下载和遍历的邮件时间范围对应不上,甚至检索不到该时间范围的邮件。


为此,需要补全被省去的“0”,改动:

string tempmonth, tempday;
if (DateTime.Now.Month.ToString().Length != 2)
{
    tempmonth = "0" + DateTime.Now.Month.ToString();
}
else
{
    tempmonth = DateTime.Now.Month.ToString();
}
if (DateTime.Now.Day.ToString().Length != 2)
{
    tempday = "0" + DateTime.Now.Day.ToString();
}
else
{
    tempday = DateTime.Now.Day.ToString();
}
textBox5.Text = DateTime.Now.Year.ToString() + tempmonth + tempday;

第二个bug则比较致命,因为是传入参数给python的程序运行,只应该传入6个参数,然后由于路径中多了一个空格,使之判断为传入七参数,导致运行失败。为此加上路径判断和提示:

if (FilePath.IndexOf(" ") != -1)
{
   MessageBox.Show("保存路径的文件夹名中存在空格会导致程序执行失败,请重新选择保存路径!", "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
   return;
}

改正之后就都正常了,有兴趣的可以下载源码(内部包含.py文件和C#工程文件),自己尝试一下呀。

目录
相关文章
|
4月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
1941 123
|
8月前
|
存储 监控 算法
解析公司屏幕监控软件中 C# 字典算法的数据管理效能与优化策略
数字化办公的时代背景下,企业为维护信息安全并提升管理效能,公司屏幕监控软件的应用日益普及。此软件犹如企业网络的 “数字卫士”,持续记录员工电脑屏幕的操作动态。然而,伴随数据量的持续增长,如何高效管理这些监控数据成为关键议题。C# 中的字典(Dictionary)数据结构,以其独特的键值对存储模式和高效的操作性能,为公司屏幕监控软件的数据管理提供了有力支持。下文将深入探究其原理与应用。
204 4
|
5月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1126 1
|
4月前
|
小程序 PHP 图形学
热门小游戏源码(Python+PHP)下载-微信小程序游戏源码Unity发实战指南​
本文详解如何结合Python、PHP与Unity开发并部署小游戏至微信小程序。涵盖技术选型、Pygame实战、PHP后端对接、Unity转换适配及性能优化,提供从原型到发布的完整指南,助力开发者快速上手并发布游戏。
|
8月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
593 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
存储 测试技术 C#
Azure 云服务与 C# 集成浅谈
本文介绍了 Azure 云服务与 C# 的集成方法,涵盖基础概念、资源创建、SDK 使用、常见问题解决及单元测试等内容,通过代码示例详细说明了如何在 C# 中调用 Azure 服务,帮助开发者提高开发效率和代码质量。
272 8
|
存储 小程序 Python
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
### 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序 该程序通过`lunardate`库实现公历与农历的日期转换,支持闰月和跨年处理,用户输入农历节日名称后,可准确计算距离该节日还有多少天。功能包括农历节日查询、倒计时计算等。欢迎使用! (239字符)
876 86
|
7月前
|
机器学习/深度学习 监控 算法
局域网行为监控软件 C# 多线程数据包捕获算法:基于 KMP 模式匹配的内容分析优化方案探索
本文探讨了一种结合KMP算法的多线程数据包捕获与分析方案,用于局域网行为监控。通过C#实现,该系统可高效检测敏感内容、管理URL访问、分析协议及审计日志。实验表明,相较于传统算法,KMP在处理大规模网络流量时效率显著提升。未来可在算法优化、多模式匹配及机器学习等领域进一步研究。
222 0
|
缓存 API C#
C# 一分钟浅谈:GraphQL 优化与性能提升
本文介绍了 GraphQL API 的常见性能问题及优化方法,包括解决 N+1 查询问题、避免过度取数据、合理使用缓存及优化解析器性能,提供了 C# 实现示例。
269 33
|
Devops jenkins 测试技术
C# 一分钟浅谈:自动化部署与持续集成
【10月更文挑战第21天】本文介绍了自动化部署和持续集成(CI)在C#项目中的应用,涵盖基础概念、常用工具(如Jenkins、GitHub Actions、Azure DevOps、GitLab CI/CD)、常见问题及解决方案,以及实践案例和代码示例。通过合理配置CI/CD工具,可以显著提高开发效率和代码质量。
383 1

推荐镜像

更多