private static ShellFolderView GetShellFolderView(string path)
{
Shell shell = new ShellClass();
ShellWindows shellWindows = (ShellWindows)shell.Windows();
Uri fileUri = new Uri(path);
foreach (ShellBrowserWindow shellWindow in shellWindows)
{
string s = shellWindow.LocationURL;
Uri windowUri = new Uri(s);
if (windowUri.AbsolutePath == fileUri.AbsolutePath)
{
return (ShellFolderView)shellWindow.Document;
}
}
return null;
}
//В основном событии:
FileInfo file = new FileInfo(path);
var folderView = GetShellFolderView(file.DirectoryName);
//Вернет строку вида: "prop:System.ItemDate;", если файлы в папке отсортированы по дате. Если по убыванию,
//то добавляется минус, вот так "prop:-System.ItemDate;". Зная эту информацию, сортируем уже как хотим.
string sortProperty = folderView.SortColumns;