如何从EnvDTE80.DTE2获取VS扩展中选中文件夹的路径
获取Visual Studio扩展中选中文件夹的完整路径
你可以通过将SelectedItem.Object转换为ProjectItem对象,来获取选中文件夹的完整路径。以下是实现代码:
SelectedItems selectedItems = this.DTE.SelectedItems; foreach (SelectedItem selectedItem in selectedItems) { // 将选中项转换为ProjectItem if (selectedItem.Object is ProjectItem projectItem) { // 判断是否为物理文件夹类型 if (projectItem.Kind == EnvDTE.Constants.vsProjectItemKindPhysicalFolder) { // 方式1:通过get_FileNames方法获取完整路径 string fullPath = projectItem.get_FileNames(1); // 方式2:通过Properties属性直接获取FullPath // string fullPath = projectItem.Properties.Item("FullPath").Value.ToString(); // fullPath 会返回类似 "C:\Projects\MySolution\MyProject\TargetFolder" 的完整路径 } } }
关键说明:
SelectedItem.Object:选中项的底层实例,项目内的文件夹本质是ProjectItem类型,转换后可访问其路径相关属性。vsProjectItemKindPhysicalFolder:用于过滤出物理文件夹类型的选中项,避免处理文件、项目等其他类型的选中对象。get_FileNames(1):这是获取项目项路径的通用方法,对文件夹而言,传入参数1即可返回完整路径。Properties.Item("FullPath"):直接访问项目项的FullPath属性,也能得到相同的完整路径结果。
内容的提问来源于stack exchange,提问作者Naveen
相关产品推荐
相关产品推荐

