搜索文件(1)技术要点

搜索文件

许多杀毒软件,一般都是通过检查磁盘中的文件来确定计算机中是否存在病毒。用户在执行这些软件时,会发现这些软件以极快的速度遍历磁盘中的文件,这是如何实现的呢?本例实现了搜索文件的功能。

1、技术要点

其实实现遍历磁盘文件并不困难,可以通过DirectoryInfo.GetFileSystemInfos 方法方法来实现。首先通过DirectoryInfo.GetFileSystemInfos方法方法取得目录中所有子目录和文件的强类型,如果找到文件就通过FileInfo类实例化一个文件对象,判断文件是否是将要查找的文件。如果找到的文件是一个目录或文件夹,则继续遍历目录或文件夹(通过递归)。

DirectoryInfo.GetFileSystemInfos 方法方法返回DirectoryInfo类型的实例包含的文件或目录,其语法格式如下:Public FileSystemInfo[] GetFileSystemInfos()

返回值:FileSystemInfo[],强类型FileSystemInfo项的数组。

注意:因为使用了DirectoryInfo类,所以要添加System.IO命名空间的引用。

 

1.1 textbox.text.trim() 与textbox.text区别

textbox.text.trim()字符处理函数Trim 截去字串首尾的空格。

TextBox.Text 是接收用户输入的任意字符串,而TextBox.Text.Trim()不能接收用户输入的空格(开头和结尾的空格),由于TextBox.Text 的数据类型是String类型的,所以我们可以把TextBox.Text 看成是一个字符串,你可以对它进行任意字符串的操作,Trim()只是其中一种操作,全部方法来自于String对象,但我们不能把Trim()看成了TextBox中的一个方法,所以TextBox.Text 和 TextBox.Text.Trim() 是没有可比性的。

C#中的 textBox1.Text.Trim() 的 Trim()表示什么意思

去掉前后的空格,比如你不是定格写起 ,去掉空格后就取了你写的那部分不包括空格

1.2 listview.clear()和listview.items.clear()区别

listview.item.clear()后,listview控件中仍然保存着listviewitem项的结构,即listview有多个列,每列可能对应的列标题数据等。

而当你使用了listview.clear()后,整个listview内保存数据的结构就没了。

1.3 MessageBox.Show(string messageBoxText, string caption, System.Windows.MessageBoxButton button, System.Windows.MessageBoxIcon icon)

功能:显示一个消息框,该消息框包含消息、标题栏标题、按钮和图标,并且返回结果。

参数:messageBoxText String,一个 String,用于指定要显示的文本。

Caption String,一个 String,用于指定要显示的标题栏标题。

      Button MessageBoxButtons,一个 MessageBoxButtons值,用于指定要显示哪个按钮或哪些按钮。MessageBoxButtons值共有5个选项,MessageBoxButtons.AbortRetryIgnore、MessageBoxButtons.OK、MessageBoxButtons.OKCancel、MessageBoxButtons.RetryCancel、MessageBoxButtons.YesNo、MessageBoxButtons.YesNoCancel。

      Icon MessageBoxIcon, MessageBoxImage值共有以下8个选项.

1.4 DirectorySecurity 类

命名空间:System.Security.AccessControl

程序集:System.IO.FileSystem.AccessControl.dll, mscorlib.dll

功能:DirectorySecurity 类指定系统目录的访问权限以及访问尝试的审核方式。

构造函数:DirectorySecurity(String, AccessControlSections),使用指定的 DirectorySecurity 枚举值从指定目录初始化 AccessControlSections 类的新实例。

属性:DirectorySecurity .AreAccessRulesProtected,获取一个布尔值,用于指定与 ObjectSecurity 对象关联的自定义访问控制列表 (DACL) 是否受到保护。

1.5 C#使用ToUpper()与ToLower()方法将字符串进行大小写转换的方法

ToUpper()

功能:将字符c转换为大写英文字母

说明:如果c为小写英文字母,则返回对应的大写字母;否则返回原来的值。

 

ToLower()

功能:将字符C转换为小写英文字母

说明:如果C为大写英文字母,则返回对应的小写字母;否则返回原来的值。

 

代码示例:

private void button1_Click(object sender, EventArgs e)

{

   textBox2.Text = textBox1.Text.ToUpper();

}

private void button2_Click(object sender, EventArgs e)

{

   textBox2.Text = textBox1.Text.ToLower();

}

 

 

1.6 String.Contains 方法

Contains: 判断某一个字符串中是否包含某一个字符串,结果是布尔类型.

参数:value String要搜寻的字符串。

返回:Boolean ,如果 true 参数出现在此字符串中,或者 value 为空字符串 (""),则为 value;否则为 false。

注解:此方法执行序号(区分大小写和不区分区域性)比较。 搜索从该字符串的第一个字符位置开始,并继续到最后一个字符的位置。

示例: 下面的示例确定字符串 "fox" 是否为熟悉的引号的子字符串。

String s1 = "The quick brown fox jumps over the lazy dog";

string s2 = "fox";

bool b = s1.Contains(s2);

1.7 C#中foreach的用法

语法:

foreach(数据类型  变量名  in  数组名)

{

    //语句块;

}

功能:foreach循环用于列举出集合中所有的元素,foreach语句中的表达式由关键字in隔开的两个项组成。in右边的项是集合名,in左边的项是变量名,用来存放该集合中的每个元素。

原理:该循环的运行过程如下:每一次循环时,从集合中取出一个新的元素值。放到只读变量中去,如果括号中的整个表达式返回值为true,foreach块中的语句就能够执行。一旦集合中的元素都已经被访问到,整个表达式的值为false,控制流程就转入到foreach块后面的执行语句。

foreach语句经常与数组一起使用,下面实例将通过foreach语句读取数组的值并进行显示。

代码示例

class Program

{

    static void Main(string[] args)

    {

        double[] points = { 80, 88, 86, 90, 75.5 };

        double sum = 0;

        double avg = 0;

        foreach(double point in points)

        {

            sum = sum + point;

        }

        avg = sum / points.Length;

        Console.WriteLine("总成绩为:" + sum);

        Console.WriteLine("平均成绩为:" + avg);

    }

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器人自动化控制

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值