文件查找,关键字替换(未修改)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.IO;

namespace myCase1st
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

string select_path;//..................................选择目录
string select_extension;//.............................选择类型
string keyword;//......................................关键字
string[] filelist;//...................................文件列表
string rewords;//......................................替换内容

private void button1_Click(object sender, EventArgs e)//...........................获得目录
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
select_path = fbd.SelectedPath;
this.textBox1.Text = select_path;
}

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)//...........获得类型
{
select_extension = comboBox1.SelectedItem.ToString();

}

private void button2_Click(object sender, EventArgs e)//..............................显示文件列表
{
keyword = this.textBox2.Text;

if (select_extension != null && select_path != null)
{
filelist = Directory.GetFiles(select_path);//.........................获得路径下的文件列表

listView1.Items.Clear();

foreach (string fil in filelist)
{
FileInfo f = new FileInfo(fil);

string str1="";

str1 = System.IO.File.ReadAllText(fil, System.Text.UnicodeEncoding.GetEncoding("gb2312"));

if (select_extension == ".*")
{
if (str1.IndexOf(keyword) != -1)//.........................判断是否有关键字
{
ListViewItem m = new ListViewItem();
m.Text = f.Name;
m.SubItems.Add(f.DirectoryName);
m.SubItems.Add(f.Length.ToString());
m.SubItems.Add(f.Extension);
listView1.Items.Add(m);
}
}
else if (f.Extension == select_extension)
{
if (str1.IndexOf(keyword) != -1)//.........................判断是否有关键字
{
ListViewItem m = new ListViewItem();
m.Text = f.Name;
m.SubItems.Add(f.DirectoryName);
m.SubItems.Add(f.Length.ToString());
m.SubItems.Add(f.Extension);
listView1.Items.Add(m);
}
}
}
}
this.label6.Text = listView1.Items.Count.ToString();
}

private void 移除文件ToolStripMenuItem_Click(object sender, EventArgs e)
{

if (this.listView1.SelectedItems.Count != 0)
{
listView1.Items.RemoveAt(listView1.SelectedIndices[0]);

}

this.label6.Text = listView1.Items.Count.ToString();

}//...............移除选中项

private void 添加文件ToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();

if (ofd.ShowDialog() == DialogResult.OK)
{
FileInfo f = new FileInfo(ofd.FileName);
ListViewItem m = new ListViewItem();
m.Text = f.Name;
m.SubItems.Add(f.DirectoryName);
m.SubItems.Add(f.Length.ToString());
m.SubItems.Add(f.Extension);
listView1.Items.Add(m);
}
this.label6.Text = listView1.Items.Count.ToString();
}//..............添加项

private void 用记事本打开ToolStripMenuItem_Click(object sender, EventArgs e)
{

if (this.listView1.SelectedItems.Count != 0)
{
string fname = this.listView1.Items[listView1.SelectedIndices[0]].SubItems[0].Text;
string fpath = this.listView1.Items[listView1.SelectedIndices[0]].SubItems[1].Text;
string pn = fpath + "\\" + fname;
System.Diagnostics.Process.Start("notepad.exe", pn);
}

}//........记事本打开

public void reInfo(string path,string keyword,string rewords)
{
StreamWriter sw = new StreamWriter(path);
sw.WriteLine(this.textBox1.Text);

sw.Close();
}
private void button3_Click(object sender, EventArgs e)
{
DialogResult MsgBoxResult;
MsgBoxResult = MessageBox.Show("确认替换吗,如果替换内容为空将会删除文件中的关键字。", "温馨警告^!^", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
if (MsgBoxResult == DialogResult.Yes)
{

rewords = textBox3.Text;
string fname = "";
string fpath = "";
string pn = "";
for (int count = 0; count < listView1.Items.Count; count++)
{
if (this.listView1.Items.Count != 0)
{
fname = this.listView1.Items[count].SubItems[0].Text;
fpath = this.listView1.Items[count].SubItems[1].Text;
pn = fpath + "\\" + fname;
string str = "";
if (keyword.Length != 0)
{
str = System.IO.File.ReadAllText(pn, System.Text.UnicodeEncoding.GetEncoding("gb2312"));

if (str.IndexOf(keyword) != -1)
{
str = str.Replace(keyword, rewords);
}

System.IO.File.WriteAllText(pn, str, System.Text.UnicodeEncoding.GetEncoding("gb2312"));

}
}
}
MessageBox.Show("本次已将这些文件中的“" + keyword + "”替换为“" + rewords + "”!!");
}

}//............................替换内容

private void Form1_Load(object sender, EventArgs e)
{

}

}
}

文件查找,关键字替换(未修改)

时间: 2024-08-09 13:50:39

文件查找,关键字替换(未修改)的相关文章

Linux使用vim进行多文件查找和替换的方法

vim是Linux系统下常用的文本编辑,通过使用多种shell命令能够实现多文件的查找和替换,那么具体会使用到那些命令呢?下面小编就给大家介绍下Linux系统vim多文件查找和替换的方法. 在linux平台上,有很多优秀的shell命令组合来做多文件查找/替换,比如这些命令:find,sed,grep,awk,perl.但其他平台比如windows上就没那么方便了,这时候vim内置的多文件查找命令就有用武之地了,虽然比起外部命令来稍微慢了一点. vim 多文件查找 这个vim内置命令就是vimg

查找和替换目录中所有文件中的某个字符串

1.首先你需要定位到修改文件夹下,如 cd e:\修改文件夹 2.脚本(“*.config”是指定文件类型,“替换前”是查找关键字,“替换后”是替换字符): # 获取目录下相关文件 $file=Get-ChildItem . -Include *.config -recurse # 为每个文件循环 $file | foreach-object ` { # 获取文件内容 $txt=Get-Content $_ # 替换文件内容中的指定字符 $filetxt=$txt | ForEach-Objec

Linux查找和替换目录下所有文件中字符串(转载)

转自:http://rubyer.me/blog/1613/ 单个文件中查找替换很简单,就不说了.文件夹下所有文件中字符串的查找替换就要记忆了,最近部署几十台linux服务器,记录下总结. 查找文件夹下包含字符串的文件 例:查找/usr/local目录下所有包含”rubyer.me”的文件. grep -lr 'rubyer.me' /usr/local/* vim替换单个文件中所有字符串方法 例:替换当前文件中所有old为new :%s/old/new/g #%表示替换说有行,g表示替换一行中

超大文件中查找关键字

一个有10亿条记录的文本文件,已按照关键字排好序存储.请设计算法,可以快速的从文件中查找指字关键字的记录. 因为已经排好序了,可以使用 二分查找方法检索. 又因为文件过于庞大,可以将文件File分成1000份子记录集即读入10000次,每次读入10亿/10000条记录: 每次 读入一次 10亿/10000 条记录时,记作,将其关键字保存于Records数组中 , 当读入一个子记录集时,说明关键字key>=Records[0],故只需将关键字key与Records[i]最后一条记录关键字key'比

如何在PDF文件中快速查找关键字,这个方法后悔没早点知道

很多时候当我们在阅读和浏览PDF文档的时候,有时候内容比较多,很难一下就看到自己需要查找的内容,如果是用眼睛慢慢看的话不仅浪费时间浪费精力,还会产生视觉疲劳,想要快速找到关键字就需要用查找功能,那么如何在PDF文件中快速查找关键字?这个方法后悔没早点知道,下面就一起来看看吧.软件介绍:想要快速查找关键词就需要一款能够对PDF文件进行编辑和修改的软件,一款比较专业的PDF编辑器,良心推荐迅捷PDF软件,这款软件不仅能够PDF文件进行修改和编辑,还有很多其他的功能,如PDF添加书签,PDF添加背景等

Linux查找指定目录最新修改文件的命令

1. 查找30分钟内最新修改过的文件 find ./ -mmin -30 -type f | head -1 2. 查找30分钟内最早修改过的文件 find ./ -mmin -30 -type f | tail -1 3. 查找24小时内最新修改过的文件 find ./ -mtime 0 -type f | head -1 4. 查找48小时~24小时内最新修改过的文件 find ./ -mtime 1 -type f | head -1 5. 查找最新三天修改过的最新文件 find ./ -

修改文件名称或者替换文件名中的内容

import os def putName(path, flag, oldName, newName): """ 修改文件名称或者替换文件名中的内容 """ dirList = os.listdir(path) for i in dirList: if i.startswith('.'): continue newPath = os.path.join(path, i) if os.path.isdir(newPath): putName(new

python 文件操作(二) 替换性修改文件内容

正常情况我们想要仅对文件某一行的内容进行修改,而不改变其他内容,在原文件的基础上不能修改,因为当我们对原文件进行写操作时,如果原文件里面有内容,就会清空,在这种情况下,只能对文件进行替换性修改:即重新创建一个文件,把原文件的内容按行复制到新文件里,当复制到要修改的那一行时,就用我们需要的内容来替换原有的内容 eg:我们要修改原文件的第五行内容为"hello,小双双",实现源码如下: # 替换性修改文件内容 f_read = open('小双双', 'r', encoding='utf8

linux几种常见的文件内容查找和替换命令

作为一个以前没怎么接触过linux的小白,开始使用linux,各种不习惯,这周遇到一个文件内容测查找和替换的需求.学习了以下几种实现方式: 1.vi命令下的查找和替换 1.1 vi下的查找 /pattern<Enter> :向下查找pattern匹配字符串 ?pattern<Enter>:向上查找pattern匹配字符串使用了查找命令之后,使用如下两个键快速查找:n:按照同一方向继续查找N:按照反方向查找pattern是需要匹配的字符串,例如:/name<Enter>