C指定路径式——自动删除文件夹

C指定路径式——自动删除文件夹项目场景 项目相关背景 基于上一次使用 Python 写的自动删除 OK 文件夹 对于之前完成的 Python 自动删除文件夹的程序不太满意的缘故 给这程序升了个级 换成使用 C 编写 然后呢 加上 C 是新自学的语言 对 C 的许多操作都是不了解 许多时候想实现一个功能都是在搜别人写好的再加以改造变成自己需要的 可用着用着觉得还是 Python 香 C 变量还得考虑类型和转换 比较麻烦

大家好,我是讯享网,很高兴认识大家。

项目场景:

项目相关背景:基于上一次使用Python写的自动删除OK文件夹
对于之前完成的Python自动删除文件夹的程序不太满意的缘故,给这程序升了个级,换成使用C#编写。
然后呢,加上C#是新自学的语言,对C#的许多操作都是不了解,许多时候想实现一个功能都是在搜别人写好的再加以改造变成自己需要的,可用着用着觉得还是Python香,C#变量还得考虑类型和转换,比较麻烦,但是在做界面的时候又非常简单省事,到了最后时还不需要手动生成exe文件,的确有点意思哈!


问题描述:

遇到的问题难点:
1.从csv表格中筛选出机检为true(OK)的SN;
2.将筛选出的SN保存到指定路径下的另一个表格中;
3.找到对应的(需要删除的OKSN)图片的日期路径;
4.删除文件夹;
5.日期与字符串之间和字符串与日期之间的转换;
6.各个窗口控件的使用;
7.字符串的切割;
8.路径的搜索、切割;
… …


讯享网


解决方案 :

(由于太麻烦,算了不细写)

整体方案:

代码:

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; //有了这个命名空间(类型库)才可以使用 FileStream 这个类 using System.Collections; using System.Reflection; using Newtonsoft.Json; using System.Runtime.InteropServices; using System.Globalization; namespace find_file_and_raed_CSVfile { 
    public partial class Form1 : Form { 
    //readonly Form1 f = new Form1(); //private readonly DataTable eachLine1; /// <summary> /// 该按钮按下后可以选择路径打开CSV表格,并依次读取表格中的第4第5列内容,然后在文本框中显示其内容 /// 但是还有两个问题未能解决: /// 1.中文显示乱码 /// 2.读取到某一行时会出现索引超出范围的异常,大概是该行内容为空导致的问题 /// 都已解决 /// </summary> public Form1() { 
    InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { 
    //这里是为了再次点击该按钮时先清空文本框内的内容 richTextBoxTM3.Clear(); richTextBoxTM4.Clear(); richTextBoxTM1.Clear(); List<string> eachLine1 = new List<string>(); //读取CSV并生成和输出OKSN列表 eachLine1 = RaderCSV(); //显示存储的SN foreach (string i in eachLine1) { 
    Console.WriteLine("存储:{0}",i); } //以下为列表转换成DataTable,并写入表格中 Transition(eachLine1); //int numder = 0; //numder = eachLine1.Count; if (eachLine1.Count != 0) { 
    string first = eachLine1[0]; eachLine1.RemoveAt(0); string[] strarray = first.Split(new string[] { 
    @"历史记录\", @".csv" }, StringSplitOptions.RemoveEmptyEntries); int delete_ok_number = 0; //读取表格,进行删除OK文件夹 foreach (string oksn in eachLine1) { 
    Console.WriteLine("进行删除:{0}", oksn); string oksn_path1 = @"E:\图片\" + strarray[1] + @"\Bay26_PCBA004-A-RT_F\" + oksn; if (Directory.Exists(oksn_path1)) { 
    //还是得解决如何获取到是读取哪个表格的文件名 string delete_file_path = @"E:\图片\" + Path.GetFileNameWithoutExtension(first) + @"\Bay26_PCBA004-A-RT_F\" + oksn; Delete_File(delete_file_path); delete_ok_number += 1; } if (!Directory.Exists(oksn_path1)) { 
    string oksn_path2 = @"E:\图片\" + strarray[1] + @"\Bay26_PCBA004-2AT_A\" + oksn ; if (Directory.Exists(oksn_path2)) { 
    Delete_File(oksn_path2); delete_ok_number += 1; } } } richTextBoxTM1.Text += "可删除的OK文件夹数量为:" + delete_ok_number + "\n\n"; } else if (eachLine1.Count == 0) { 
    richTextBoxTM1.Text = "对话框已关闭!"; } } /// <summary> /// 读取CSV表格 /// </summary> /// <returns></returns> public List<string> RaderCSV() { 
    List<string> eachLine1 = new List<string>(); string q; OpenFileDialog op = new OpenFileDialog();//实例化打开对画框。 if (op.ShowDialog() == DialogResult.OK)//选择的文件名有效 { 
    //创建一个文件流(目前是自个选择路径与目标文件) FileStream fs = new FileStream(op.FileName, FileMode.Open, FileAccess.Read, FileShare.None); q = op.FileName; eachLine1.Add(q); //创建读这个流的对象,第一个参数是文件流,第二个参数是编码(其实里面的值是多少对我们这个读没有什么问题) //留下一个问题:在这里使用的编码参数不对,中文会显示乱码 //StreamReader sr = new StreamReader(fs, System.Text.Encoding.GetEncoding("gb2312"));  //中文乱码已解决,就是直接标明使用UTF8解码就行了 StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8); string str = ""; //先创建一个值为空的字符串变量 int index = 1; //给输出的SN计数,用于后面的遍历 while (str != null) //如果变量不等于无效的,就一直循环 { 
    str = sr.ReadLine();//读取一行 已将这个流的对象输出,str就变为空的(也应该是无效的意思吧) if (str == null) break;//读完了就跳出循环 String[] eachLine = new String[1000];//因为知道每一行excel有2个单元格,所以string[2] 这里带[]的叫做数组,与Python的列表相似 eachLine = str.Split(',');//因为.csv文件是以逗号分隔单元格里数据的,所以调用分隔函数split if (eachLine.Length > 5) { 
    string ser = eachLine[3]; string dse = eachLine[4]; if (ser != null && dse == "True") { 
    eachLine1.Add(ser

讯享网
小讯
上一篇 2025-04-01 07:04
下一篇 2025-02-28 20:39

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60559.html