如何获取在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);
}
}
您可以使用
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
类具有许多用于检索和操作路径信息的有用功能。