2010-02-01 27 views
1

我使用C++编程,Windows 我想知道我是否可以得到某个文件夹中文件的顺序。 FileFind的顺序似乎按字母顺序排列。如何获取资源管理器中文件/目录的顺序?

例如。我可以拖动文件夹中的文件夹/文件。如果我再次打开它,订单将保留。 我希望我能得到这个订单。 非常感谢!

对不起,我的问题没有说清楚。 我认为在浏览器中的顺序是关于文件系统。现在我从你的答案中知道,这只是探险家的命令。 然后,我如何从资源管理器读取订单。

情况如下: 我正在写一个图像查看器,双击图像,打开窗口。然后按“ - >”“< - ”,即可导航图像文件夹。 用户希望我的图像查看器中的导航顺序与浏览器中的顺序一样。我不知道该怎么做。

是否有任何shell API todo?

+0

你需要什么订单? 从FindFirstFile获取数据后不能对它进行排序吗? – 2010-02-01 06:33:18

+0

我加入到我的问题中,谢谢! – user25749 2010-02-01 06:37:21

+0

仍不清楚。也许你希望它按创建/修改时间排序?如果你不按照你选择的顺序进行拖放,我不认为有一个强大的方法(即不受到浏览器实施的兴趣)。 – 2010-02-01 06:41:53

回答

0

IFolderView可能会做你想做的,但我不知道如何得到它(而不是一个shell程序员)。

0

尽我所能从所述问题中理解。您需要将应用程序分成几部分。

  1. 首先获取文件和目录的列表,并将其存储在一个列表中。此代码MSDN可能有助于获取一些基本的Win32 API来列出目录中的文件。尝试调整一下,以根据您的需求获得理想的结果。现在,一旦你有一个列表,你可以按字母顺序排序。您可以使用基本链接列表来存储所有文件名和路径。
  2. 第二步是使用GUI来显示这些文件的列表。你可以使用一个列表框来填充这个列表。即使列表框有一个选项,其中列表按字母顺序排序。因此,如果您使用此选项,您可能无法在步骤1中对列表进行排序。
  3. 为了实现拖放操作,您需要编写关于选择列表或文件的部分部分的代码。在Win32 SDK中,您将根据WM_xxx消息获取此通知。对于每个图形用户界面控件,无论是列表视图还是列表框等等,MSDN都会告诉你什么样的信息可以被捕获并用于了解哪个文件被拖动或选择。
相关问题