using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace ThreadTest
{
public class SingleFileSearch
{
private long c = 0;
public void Search(string dir, string fileName)
{
string[] fileList = Directory.GetFiles(dir);
foreach (string file in fileList)
{
int startIndex = file.LastIndexOf('\\');
int endIndex = file.LastIndexOf('.');
if (endIndex > startIndex)
{
if (file.Substring(startIndex + 1, endIndex - startIndex).IndexOf(fileName) >= 0)
c++;
}
}
try
{
string[] dirList = Directory.GetDirectories(dir);
foreach (string _dir in dirList)
{
Search(_dir, fileName);
}
}
catch (Exception) { }
}
public void Complete()
{
Console.WriteLine("完成操作 " + c);
}
}
}
DateTime t1 = DateTime.Now;
FileSearch file = new FileSearch(64, "d:/", "c");
file.Run();
file.Complete();
DateTime t2 = DateTime.Now;
TimeSpan s = t2 - t1;
Console.WriteLine("_________________" + s.TotalSeconds);
t1 = DateTime.Now;
SingleFileSearch sinFile = new SingleFileSearch();
sinFile.Search("d:/", "c");
sinFile.Complete();
t2 = DateTime.Now;
s = t2 - t1;
Console.WriteLine("_________________" + s.TotalSeconds);
分享到:
相关推荐
在传统的单线程文件查找中,程序会顺序地检查每个目录和文件,这在面对大型文件系统时可能会非常慢。而多线程文件查找则打破了这种限制,它将文件系统的不同部分分配给多个线程,让它们同时进行查找,极大地提高了...
在多线程环境中,每个线程负责一个特定的文件夹或者一部分文件,这样可以同时处理多个文件查找任务,大大缩短了总体的查找时间。同时,为了防止不同线程之间的资源冲突,可能使用了同步机制,如互斥量(Mutex)、...
总的来说,通过理解全盘遍历的基本原理,掌握多线程和递归算法的应用,以及结合UI反馈和线程同步技术,我们可以构建一个高效、用户友好的文件查找程序。这种能力在软件开发、系统管理、数据分析等多个领域都有重要...
给定的压缩包文件涉及到了计算机编程中的一个有趣问题——查找水仙花数,并且通过多线程和多进程两种并行计算方法以及单线程的顺序计算方法来解决这一问题。用户可以通过学习这些材料,深入理解不同编程模型在执行...
在单线程程序中,任务是顺序执行的,而在多线程环境中,多个任务可以并发执行,从而提高了系统资源的利用率和程序响应速度。在文件搜索场景中,多线程可以使得程序并行地在多个目录或文件中查找目标,显著缩短总体...
在VC++编程环境中,实现多线程文件搜索是一项高级技术,涉及到并发处理、线程通信和同步等核心概念。下面将详细阐述这些知识点。 首先,**多线程**是现代计算机程序设计中的一种常见技术,它允许多个任务在同一时间...
在单线程环境下,查找目录下的文件通常是顺序执行的,即逐个检查每个文件是否符合搜索条件。这种方法在文件数量较少时可能尚可接受,但面对包含数千甚至数百万文件的大目录,其速度将极其缓慢。为了解决这个问题,...
本压缩包包含一系列Python脚本,用于通过多线程、多进程和单线程方式查找水仙花数,这是一种特殊的三位数,其各位数字的立方和等于该数本身。 1. **水仙花数**: 水仙花数(Narcissistic number)是1000以内的三位...
通常,大型工程会包含数以千计的文件,传统的单线程文件搜索可能需要很长时间才能完成任务。通过使用多线程,程序可以同时处理多个搜索任务,显著减少用户等待时间,提高工作效率。 【标签】进一步细化了这个工具的...
在单线程环境中,查找操作会依次检查每个文件,而在多线程环境下,可以同时处理多个文件,从而显著提高效率。 多线程的基本概念是创建并运行多个执行线程,这些线程可以在同一进程中并发执行。在VC++中,我们可以...
在"多线程文件查询"系统中,可能会有一个线程负责遍历文件系统,查找匹配查询条件的文件,而Execute方法中就包含了这部分逻辑。 提到文件查询,系统可能使用了Windows API,这是一个低级别的接口,可以直接与操作...
本主题将深入探讨如何利用C++的标准库和自定义算法来实现高效的文件查找功能。 首先,C++标准库提供了`<filesystem>`库(在C++17及以上版本中引入),它包含了对文件和目录的操作,如`std::filesystem::directory_...
例如,如果需要在一个大型文件系统或网络驱动器中查找特定文件,单线程搜索可能需要很长时间。而采用多线程技术,我们可以将搜索任务划分为多个子任务,每个线程负责一部分目录或文件的搜索,这样就可以显著减少整体...
在文件查找场景中,传统的单线程方式可能需要遍历整个文件系统,时间消耗较大。而多线程则可以将查找任务分解,每个线程负责一部分文件夹或文件的搜索,从而大大缩短查找时间。 其次,这个例子可能使用了线程池或者...
读取大文本文件时,如果使用单线程,可能会造成程序阻塞,特别是在内存有限的情况下,一次性加载整个文件可能导致资源消耗过大。而多线程读取则可以分块处理文件,避免一次性加载所有数据,提高程序响应速度。 在...
传统的单线程文件搜索方法可能效率低下,因为它们需要逐个检查每个目录和文件。然而,多线程文件搜索器则能够显著提高效率,方法如下: 1. **并行搜索**:每个线程负责搜索文件系统的一部分,所有线程同时工作,...
在处理大数据量的文本文件时,单线程读取可能会导致程序响应慢或者占用过多系统资源,因此,采用多线程技术进行读取就显得尤为重要。 在“易语言多线程读取大文本文件”这个主题中,核心概念是多线程和文件I/O操作...
基于多线程技术的 Linux 环境下文件查找器 find 的设计与实现 本文主要介绍了基于多线程技术的 Linux 环境下文件查找器 find 的设计与实现。Find 命令是 Unix 操作系统中的一种常用命令,能够实现多种条件的查询,...
本项目“C#实现的多线程文件搜索”是利用C#强大的特性和库来实现一个高效的文件搜索机制,它能针对指定的目录及其子目录,快速查找包含特定关键字的HTML或文本文件,并返回匹配文件的名称。这个功能对于大数据量的...
本资源提供了一种文件检索的源码实现,它允许用户根据内容来查找文件,类似于Windows操作系统中的文件查找功能。下面我们将深入探讨这个主题,解析其中涉及的关键知识点。 1. 文件系统遍历: 文件检索的第一步通常...