如何获取在Windows资源管理器中选择的列表文件和文件夹

本文关键字:选择 列表 文件 文件夹 资源管理器 Windows 何获取 获取 | 更新日期: 2023-09-27 17:56:31

我需要在Windows资源管理器中获取当前所选文件或文件夹的路径才能放置ListView。我不知道该怎么做,希望你能帮上忙。谢谢

更新源

public void GetListFileAndFolderOfWindowsExploer()
{
    try
    {
        string fileName;
        ArrayList selected = new ArrayList();
        Shell32.Shell shell = new Shell32.Shell();
        foreach (SHDocVw.InternetExplorer windows in new SHDocVw.ShellWindows())
        {
            fileName = Path.GetFileNameWithoutExtension(windows.FullName).ToLower();
            if (fileName.ToLowerInvariant() == "explorer")
            {
                Shell32.FolderItems items = ((Shell32.IShellFolderViewDual2)windows.Document).SelectedItems();
                foreach (Shell32.FolderItem item in items)
                {
                    lift = new string[] { item.Name, item.Path };
                    ListViewItem list = new ListViewItem();
                    list.Text = item.Name;
                    list.SubItems.Add(item.Path);
                    list.UseItemStyleForSubItems = true;
                    listView1.Items.Add(list);
                }
            }
        }
    }
    catch (Exception ex)
    {
        writelog(ex.Message);
    }
}

如何获取在Windows资源管理器中选择的列表文件和文件夹

您可以使用

OpenFileDialog(Home并学习OpenFileDialog)。

希望此链接有所帮助。

OpenFileDialog fdlg = new OpenFileDialog();
fdlg.Title = "C# Help";
fdlg.InitialDirectory = @"c:'";
fdlg.Filter = "All files (*.*)|*.*|All files (*.*)|*.*";
fdlg.FilterIndex = 2;
fdlg.RestoreDirectory = true;
if (fdlg.ShowDialog() == DialogResult.OK)
{
     string dirName =
     System.IO.Path.GetDirectoryName(fdlg.FileName);
     string drive =
     dirName.Split(System.IO.Path.VolumeSeparatorChar)[0];
     MessageBox.Show(dirName);
     MessageBox.Show(drive);
}

为了获得选定的项目,您必须使用以下接口:

IServiceProvider
IShellBrowser
IFolderView
IShellFolder2
IPersistFolder2 

或直接

(IEnumIDList and LPITEMIDLIST) foreach all selected items

这在 Windows 10 中工作正常。

你的问题似乎不清楚,希望你用OpenFileDialog来选择文件,

如果要查找文件路径:

string path = OpenFileDialog1.FileName; //output = c:'folder'file.txt

如果要查找目录路径:

string path = Path.GetDirectoryName(OpenFileDialog1.FileName); //output = c:'folder

通常,System.IO.Path类具有许多用于检索和操作路径信息的有用功能。