很奇怪的需求,图片浏览器为何要和资源管理器一致?
没有这样的api

解决方案 »

  1.   

    啊,可我这不对啊,FileInfo[] files = dir.GetFiles();  默认是按名称排序的。和资源管理器里不一致。 难道是其他方法吗?
      

  2.   

    比如说一个图片浏览器,当双击“我的图片”文件夹中的某一图片后,打开图片。然后点击下一张,这个时候如果和资源管理器中的排序不一致,那么就会和用户期待浏览的下一张不一样了。系统自带图片查看器则是这样,我的win7中是这样。
    如果没有API,是否会存在注册表中? 版主救命~ 具体某文件夹相关信息注册表在哪~~
      

  3.   

    看看DirectoryInfo里有没有文件夹的排序信息吧
      

  4.   

    文件夹的没有自己的排序方式,排序方式是视图给的。比如你可以打开两个资源管理器窗口用不同排序方式显示同一个文件夹。如果你可以知道哪个视图是启动你的程序视图的话,你可以调用IShellView::GetItemObject获得当前视图中的所有对象,但是命令行或者IDropTarget都是不会传给你来源信息的。你可以枚举IShellWindows自己找,但是1 UAC打开的时候不一定找得到 2不保证结果只有一个。
    如果你的程序支持同时打开多个文件,那么系统传给你的程序的文件名/IShellItem指针应该是已经排过序了的。
      

  5.   

    比如说一个图片浏览器,当双击“我的图片”文件夹中的某一图片后,打开图片。然后点击下一张,这个时候如果和资源管理器中的排序不一致,那么就会和用户期待浏览的下一张不一样了。系统自带图片查看器则是这样,我的win7中是这样。
    如果没有API,是否会存在注册表中? 版主救命~ 具体某文件夹相关信息注册表在哪~~
    那个本来就是临时排序的。不要在意这些细节。 
    你可以直接做一个树形结构。和一个picbox来预览图片。 
    这样就方便控制了。