我有一个C#.NET 3.5应用程序,我已将DragDrop事件合并到DataGridView上。
#region File Browser - Drag and Drop Ops
private void dataGridView_fileListing_DragDrop(object sender, DragEventArgs e)
{
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
foreach (string fileName in fileList)
{
//logic goes here
}
}
我的问题是,如何区分Windows快捷方式与实际文件?我试过了:
File.exists(fileName)
在IF块中,它可用于过滤掉已拖入的目录,但快捷方式可以通过。无论如何要告诉事件数据传入的数据中的快捷方式,或者在我有名字后查询文件系统?
答案 0 :(得分:4)
Windows快捷方式是一个文件,扩展名为.lnk。
你能详细说明你希望做什么或不做什么吗?
答案 1 :(得分:0)
如果您需要更进一步处理快捷方式定位的文件或文件夹,您可能需要查看此http://www.codeproject.com/KB/dotnet/shelllink.aspx。
该项目显示了如何使用Windows Scripting Host来操作快捷方式。例如,在创建运行时可调用包装器(IWshRuntimeLibrary.dll)并将其添加到项目后,您可以获得这样的快捷方式的目标...
string targetPath;
if(System.IO.Path.GetExtension(path)==“。lnk”){
尝试{
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
IWshRuntimeLibrary.IWshShortcut shortcut =(IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(path);
targetPath = shortcut.TargetPath;
}
赶上{}
}