Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 在目录中搜索文件的更简单解决方案_C_Algorithm_Search_File Io_Readdir - Fatal编程技术网

C 在目录中搜索文件的更简单解决方案

C 在目录中搜索文件的更简单解决方案,c,algorithm,search,file-io,readdir,C,Algorithm,Search,File Io,Readdir,我很想了解这个问题陈述的其他可能的解决方案 我有一个目录,其中文件已经根据文件创建时间排序,即, 最新的文件排在第一位,最旧的文件排在最后。我的目标是 获取在指定间隔之间创建的文件。投入将是一个巨大的挑战 “开始时间”(如14:00:00)和“结束时间”(如13:00:00),因此我必须抓住 在“开始时间”和“结束时间”之间创建的文件,并复制到其他位置 文件夹 我的设计: 首先,使用文件创建时间的“时间戳”命名文件,然后将每个文件的名称与“开始时间”和“结束时间”进行比较,以确定所需的文件范围

我很想了解这个问题陈述的其他可能的解决方案

我有一个目录,其中文件已经根据文件创建时间排序,即, 最新的文件排在第一位,最旧的文件排在最后。我的目标是 获取在指定间隔之间创建的文件。投入将是一个巨大的挑战 “开始时间”(如14:00:00)和“结束时间”(如13:00:00),因此我必须抓住 在“开始时间”和“结束时间”之间创建的文件,并复制到其他位置 文件夹

我的设计: 首先,使用文件创建时间的“时间戳”命名文件,然后将每个文件的名称与“开始时间”和“结束时间”进行比较,以确定所需的文件范围

我的逻辑是这样的

while (!endOfDirectory && endFileNotFound)
{
    if(fileName > 'start time') && (fileName < 'end time')
    {
        copyTo(diff/Folder);
        //Executes till all the required files are copied
    }
    //This is to stop searching once the required files are obtained.
    if(fileName older than start time) 
    {
        endFileNotFound = 0;
        break;
    }
}
while(!endOfDirectory&&endFileNotFound)
{
如果(文件名>“开始时间”)&(文件名<“结束时间”)
{
复制到(不同/文件夹);
//执行,直到复制所有必需的文件
}
//这是为了在获得所需文件后停止搜索。
如果(文件名早于开始时间)
{
endFileNotFound=0;
打破
}
}

问题是逐个查找每个文件以找到范围的“开始文件”,因此需要使用readdir(dir)。有没有更好的方法来识别开始文件和结束文件,而不必执行readdir()并直接跳到开始文件。

您还有更多的问题,因为很少(如果有的话)大型和常见的文件系统是真正有序的。所有文件列表的排序都是由执行列表的应用程序完成的,这不是文件系统本身固有的。因此,要查找目录中满足某些条件的所有文件,您必须真正读取该目录中所有文件的信息。@OznOg我正在寻找比我现有的更好的解决方案。我想通过使用readdir(),我必须读取每个文件名。@Someprogrammerdude。我写这篇文章是为了一个运行QNX的嵌入式应用程序。我想可能不需要这个细节。这些文件是由另一个进程创建的。@OznOg请提供一些链接。我在谷歌上搜索过,我不知道“图表”在这里如何应用。如果你建议的话,我一定会读它。不管系统的哪个部分进行循环、应用程序还是系统功能:目录通常只是某种数组,它需要访问每个成员以进行测试。-您的系统使用哪个文件系统?--如果您的应用程序可以在“启动时间”之前启动,您可以尝试挂接到一些“新生成的文件”事件中,并观察文件系统。