C#初体验

C#初体验之一键替换小工具

初入C#,刚学完一些基础语法,设计一个一键替换小工具。

大体功能:①输入旧的和新的关键字;

     ②选择指定的文件夹路径;

     ③点击确认修改。

1.创建一个Winform项目,摆放控件,修改控件名字,出现整个工具雏形。

 

 

2.整个工具使用方法构思

①输入旧的和新的关键字,不输入关键字不允许选择路径(弹出窗口1提示)

②点击【。。。】按键进行文件夹路径选择;

③点击确认进行修改,修改完成后弹出窗口提示。

3.整个软件控制逻辑实现

1.实现窗口提示1(提醒先选择路径),用户选择完路径后再Textbox中输出。

private void Getpathbutton_Click(object sender, EventArgs e)//选择路径按键事件
{
if (Oldtext.Text == "" && Newtext.Text == "") //防止不输入关键字就进行路径选择
{
MessageBox.Show("请输入需要修改的关键字");//窗口提示1
}
else if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)//检测用户是否点确认
{
ChoosePath.Text = folderBrowserDialog1.SelectedPath; //获取用户选择的路径
}
}

 

2.遍历路径中所有的文件并存入LIst泛型集合中,再逐个进行数据操作。

private void ChangeButt_Click(object sender, EventArgs e)//确认按键事件
{
_FileInfo fileinfo = new _FileInfo();
List<_FileInfo> fileinfos = new List<_FileInfo>();
string path = (ChoosePath.Text).ToString();
DirectoryInfo dir = new DirectoryInfo(ChoosePath.Text);

foreach (var getfile in dir.GetFiles()) //遍历文件夹所有文件
{
fileinfo._Filename = getfile.Name;
fileinfo._Filepath = ChoosePath.Text;
fileinfos.Add(new _FileInfo(getfile.Name, ChoosePath.Text));
FileStream fileread = new FileStream((ChoosePath.Text + "\\" + getfile.Name), FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
byte[] olddata = new byte[1024 * 1024 * 25];
byte[] newdata = new byte[1024 * 1024 * 25];
int r = fileread.Read(olddata, 0, olddata.Length);
string s = Encoding.Default.GetString(olddata, 0, olddata.Length); //字节流转字符串
string result = s.Replace(Oldtext.Text, Newtext.Text); //替换关键字
newdata = Encoding.Default.GetBytes(result);
fileread.Write(newdata, 0, newdata.Length);
fileread.Close();

fileread.Dispose();

File.WriteAllText((ChoosePath.Text + "\\" + getfile.Name), string.Empty);//清空文件数据
File.WriteAllBytes((ChoosePath.Text + "\\" + getfile.Name), newdata);//写入新的数据

}
MessageBox.Show("修改完成");//窗口提示2
}

参考源码:

百度云:  https://pan.baidu.com/s/13B3OQeMfcctA_iza92cpKg   提取码:w8od

 PS:刚刚入门的C#小白,虽说winform现在已经落后,WPF更为流行(还在看xaml),作为小白还是更喜欢操作winform。

   该代码还有很多可优化的地方,单单是数据操作方面就很粗糙~~~只是实现基本功能自己使用,后续会继续添加别的功能和优化代码。

posted @ 2020-05-01 20:02  没什么是偶然  阅读(102)  评论(0)    收藏  举报