【问题标题】:Detect sorting order in a folder检测文件夹中的排序顺序
【发布时间】:2020-07-17 08:43:51
【问题描述】:

我想检测我在给定路径中选择的排序顺序。我的目标是以相同的方式对数组/列表进行排序。

例如:路径C:\Test文件大小最小的优先之后排序。

【问题讨论】:

  • 我理解正确吗,你想挂钩到 explorer.exe 并确定当前关注的实例的排序?到目前为止,您尝试过什么?
  • 没有不专注,只是给定的路径。我没有看到任何关于这个问题的信息,所以我没有尝试任何东西。
  • Windows 资源管理器在显示该文件夹的内容时应用排序。除非您想深入了解 Windows 资源管理器保留了哪些类型的设置,否则任何其他程序都无法观察到这种排序。
  • 如果同一个文件夹在两个窗口中打开,并且在每个窗口中排序不同怎么办?
  • 然后取最近的排序。还是第一个,反正对我来说无所谓。

标签: c# windows forms sorting


【解决方案1】:

如果您的问题与 C# 中的文件枚举方法有关。那么文件的顺序是不能保证的,它取决于文件系统。当您在 C# 中调用文件枚举方法时,操作系统不会记住您在 Windows 资源管理器中选择的内容。这些方法基于win32 apis,其中声明如下

此函数返回文件名的顺序取决于 关于文件系统类型。带有 NTFS 文件系统和 CDFS 文件 系统,名称通常按字母顺序返回。和 FAT 文件系统,名称通常按顺序返回 文件被写入磁盘,它可能在也可能不在 按字母顺序。但是,如前所述,这些行为是 不保证。

但是,如果您是 enterprising-young-jedi-coder-with-time-to-burn,您可能会找到 Windows 资源管理器的排序顺序(由您在 Windows 资源管理器中选择) 可能存储在注册表中。您可能会使用注册表监视器来识别实际访问和更改的内容(如果是这种情况)。

我个人认为这可能需要很长时间,并且取决于操作系统,并且可能会随着任何 Windows 更新而改变,几乎没有好处

【讨论】:

  • 但是我在 Win10 中使用旧的照片查看器:techsupportall.com/wp-content/uploads/2018/11/… 当我单击下一张图片时,我总是会在我的文件夹的排序方式中看到下一张。我认为旧的照片查看器不再更新,所以我认为操作系统可能会改变至少不是一个问题。我不确定或任何事情,如果我错了,请纠正我。
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags(祝你好运:)
  • 您也可以尝试使用 Shell 对象。实际上,我不记得IShellFolder 枚举器是否具有保留当前选择的顺序的选项。进行验证。
  • @Jimi 不错的发现!
猜你喜欢
  • 2016-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
  • 1970-01-01
  • 1970-01-01
  • 2010-11-08
相关资源
最近更新 更多