我有一个名为mama的文件。 该文件包含3个名为child1 child2和child3的文件。 child1包含5个txts,child2包含7个txts,child3包含4个txts。 妈妈的路径是C:\\ Users \\ John \\ Desktop \\ mama。对我的写作方式而言,但我试图解释我的情况。 我的目标是找到所有这些txts的路径(数量为16个),这样我就能用它们做事。 所以我认为一个函数可以找到这些路径并将它们放在一个链表中

struct paths
{
   string pathName;
   paths *next;
};

正是我需要逐一使用它们。 我找到了一些关于FindFirstFile()和FindNextFile()的例子,我也尝试运行一些代码,这样我就可以通过一些测试来理解它是如何工作的,但是erros保持了apeared禁止测试和理解的机会。 顺便说一句,我使用visual Studio 2008(他们说我们应该使用它,所以我想我无法改变它)。 如果有人可以帮助我理解或获得任何有一些好的和一些易于理解的例子的链接,我会非常感激。

编辑:

例如,使用此代码

#include <windows.h>
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

    int main()
    {
        WIN32_FIND_DATA fData;
        void * handle = FindFirstFile( "C:/Users/John/Desktop/*", &fData );//<~~~error
        cout << fData.cFileName;
        system("pause");
    }

有1个错误:错误1错误C2664:'FindFirstFileW':无法将参数1从'const char [24]'转换为'LPCWSTR'

===============>>#1 票数:2

首先,您应该声明一个WIN32_FIND_DATA结构

然后找到目录中的第一个文件(即C:/ Users / John / Desktop / *)

paths * head;
WIN32_FIND_DATA fData;
void * handle = FindFirstFile( "C:/Users/John/Desktop/*", &fData );

检查它是否是您想要使用的文件:

fData.cFileName // the file name is stored here ( ie C:/Users/John/Desktop/child2.txt )

你可以循环执行此操作:

while( !CheckFileNameHere( fData.cFileName, head->pathname ) ) FindNextFile( handle, &fData );

增加列表:

head = head->next;

或完成:

CloseHandle( handle );

您如何获得路径取决于您。 如果已将它们存储在文件中,请使用stdio.h,iostream或windows.h中的函数。 如果将其作为函数编写,则可以将其重用于任何文件名。

如果使用这些方法获得运行时错误,则应发布确切的错误,以便我们可以找出它们无法正常工作的原因。 编译错误也是如此。

  ask by captain monk translate from so

未解决问题?本站智能推荐:

关注微信公众号