欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C#自学之旅 第一周-习题

程序员文章站 2022-04-10 20:56:57
...

代码结构

C#自学之旅 第一周-习题

LibraryClass 是按照题目要求建造的一个类库 这是个Class Library Project,里面包含多个个可被其他Project调用的方法:

CmdClass 这是个Console App Project(命令行),它可以接受用户输入,然后调用Project#1中的那个方法,

下面是实施效果图,因为系统是日文系统所以打的中文乱码了。不过不影响 

C#自学之旅 第一周-习题

C#自学之旅 第一周-习题

接下来放代码

/*
 * Created by SharpDevelop.
 * User: wanglin
 * Date: 2020/3/2
 * Time: 11:10
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.IO;
using System.Collections.Generic;

namespace LibraryClass
{
	public class ComeUseMe
	{	
		/*
         * 获取路径下所有文件名称
         * string path      文件路径
         */
public List<String> getFileName(string path)
        {
			List<String> strlist = new List<String>();
            DirectoryInfo root = new DirectoryInfo(path);
            foreach(FileInfo f in root.GetFiles())
            {
                Console.WriteLine("原始数据:"+f.Name);
                strlist.Add(f.Name);
            }
            return strlist;
        }
		
		/*
         * 写入文件
         * string path      文件路径
         */
		public void WriteFile(String path,String message)
        {
			//fs 创建文件 sw文件写入流
			FileStream fs = File.Open(path, FileMode.Append);
            StreamWriter sw = new StreamWriter(fs);
            sw.WriteLine(message);		//这里是写入的内容
			sw.Close();
			fs.Close();
			
        }
		
		/*
         * 寻找条件
         * string path      文件路径
         */
		public void FindFile(List<String> lists,String filepathname,String ipea)
        {
			List<String> Test = new List<string>();

			foreach (var temp in lists) 
			{ 
                //该方法时判断最开始的字符是否满足条件
				if(temp.StartsWith(ipea)){
					Test.Add(temp);
				}
			}
			Console.WriteLine("查找完毕,以下为满足条件的数据");
			Console.WriteLine("在该路径下,有前十个文件数据 D:\\C#\\Text.txt");

			int i = 0;
			foreach (var temp in Test) 
			{  
				if(i<10)
				{
					i++;
					Console.WriteLine(temp);
					WriteFile(filepathname,temp);
				}
			}
			
        }
	}
}
/*
 * 由SharpDevelop创建。
 * 用户: wanglin
 * 日期: 2020/3/2
 * 时间: 11:11
 * 
 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
 */
using System;
using LibraryClass;
using System.IO;
using System.Collections.Generic;
namespace CmdClass
{
	class Program
	{
		public static void Main(string[] args)
        {  							
			String filepathname = "D:\\C#\\Text.txt";
			ComeUseMe comeuseme = new ComeUseMe();
			
			Console.WriteLine("按回车键开始输入");
			Console.ReadKey(true);
			Console.WriteLine("开始匹配数据,请输入你的查找条件");
			//取得用户的输入命令
			String ipea = Console.ReadLine();	
			Console.WriteLine("按回车键继续输入你所需要查找的文件夹路径");	
			Console.WriteLine("格式如下:D:\\20200103_091510");	
			Console.WriteLine("输入完后请按回车");
			String path = Console.ReadLine();				
					
			
			List<String> lists = comeuseme.getFileName(path);
			
			comeuseme.FindFile(lists,filepathname,ipea);
			
			Console.Write("欢迎使用,按回车退出");
			Console.ReadKey(true);
		
        }
	}
}

第二个是主函数,执行它得到效果图,初学,有许多bug,仅供自己以后参考

 

完成这个功能后,研究它的进阶要求用图形化界面完成

于是有了下面的这个升级版 但是由于对C#的不熟悉,代码也有很多的冗余

C#自学之旅 第一周-习题

C#自学之旅 第一周-习题

一样的,直接贴代码,自我感觉很冗余,但是也不清楚图形界面代码怎么分割

 

/*
 * 由SharpDevelop创建。
 * 用户: wanglin
 * 日期: 2020/3/4
 * 时间: 11:44
 * 
 * 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
 */
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;

namespace WindowsForm
{
	/// <summary>
	/// Description of MainForm.
	/// </summary>
	public partial class MainForm : Form
	{
		public MainForm()
		{
			
			InitializeComponent();
			
		}
		void Button1Click(object sender, EventArgs e)
		{
			String a = "";
			OpenFileDialog OFD = new OpenFileDialog();
			OFD.InitialDirectory = "E:";
			OFD.Filter = "所有文件(*.*)|*.*";
			OFD.RestoreDirectory = true;
			OFD.FilterIndex = 1;
			DialogResult dresult= OFD.ShowDialog();
			if(dresult == DialogResult.OK){
				a = OFD.FileName;		
				textBox1.Text = a.Substring(0, a.LastIndexOf("\\")) ;
			}
			else
			{
				MessageBox.Show("未选择文件夹");
			}
			
			
		}
		void Button2Click(object sender, EventArgs e)
		{
			if(textBox1.Text.Contains(":") && textBox2.Text!=null){
				String path = textBox1.Text;
				String ipea = textBox2.Text;
				
				FileInfo fi = new FileInfo("D:\\C1#\\Text.txt");
				var di = fi.Directory;
				if (!di.Exists)
				   di.Create();
				
				FileStream fs = File.Open("D:\\C1#\\Text.txt", FileMode.Append);
			
				
	            StreamWriter sw = new StreamWriter(fs);
	            
	            
	            List<String> strlist = new List<String>();
	            DirectoryInfo root = new DirectoryInfo(path);
	            foreach(FileInfo f in root.GetFiles())
	            {
	                strlist.Add(f.Name);
	            }
	            
	            List<String> Test = new List<string>();
				foreach (var temp in strlist) 
				{ 
					if(temp.StartsWith(ipea)){
						Test.Add(temp);
					}
				}
	            
	            int i = 0;
	            String data1 = "";
				foreach (var temp in Test) 
				{  
					if(i<10)
					{
						i++;
						data1 = data1 + temp + "\r\n";
						sw.WriteLine(temp);
					}
				}
				textBox3.Text = data1;
	            MessageBox.Show("结果已经出到D:\\C#\\Text.txt 文件里");
	            
	            sw.WriteLine("");		//这里是写入的内容
				sw.Close();
				fs.Close();
			}
			else
			{
				MessageBox.Show("请先点击上放浏览,选择文件路径,并输入你的排查条件");
			}
		}
		void TextBox2TextChanged(object sender, EventArgs e)
		{
	
		}
		void TextBox3TextChanged(object sender, EventArgs e)
		{
	
		}
	}
}

控件都是自己拖出来的

C#自学之旅 第一周-习题

相关标签: 自学