VSProject2.GetUniqueFilename 方法

生成项目中的唯一的文件名。为命名新的项目项。

命名空间:  VSLangProj80
程序集:  VSLangProj80(在 VSLangProj80.dll 中)

语法

声明
Function GetUniqueFilename ( _
    pDispatch As Object, _
    bstrRoot As String, _
    bstrDesiredExt As String _
) As String
string GetUniqueFilename(
    Object pDispatch,
    string bstrRoot,
    string bstrDesiredExt
)
String^ GetUniqueFilename(
    [InAttribute] Object^ pDispatch, 
    [InAttribute] String^ bstrRoot, 
    [InAttribute] String^ bstrDesiredExt
)
abstract GetUniqueFilename : 
        pDispatch:Object * 
        bstrRoot:string * 
        bstrDesiredExt:string -> string
function GetUniqueFilename(
    pDispatch : Object, 
    bstrRoot : String, 
    bstrDesiredExt : String
) : String

参数

  • pDispatch
    类型:Object

    生成的名称将此值作为扩展名。

  • bstrRoot
    类型:String

    Project 对象或文件夹 ProjectItem 对象。 生成的文件名在此上下文中是唯一的。

  • bstrDesiredExt
    类型:String

    生成的名称以此字符串开头。

返回值

类型:String
一个表示项目或项目文件夹中的唯一文件名的字符串。如果第一个参数是一个 Project 实例,则生成的名称在根项目文件夹内是唯一的。该文件名采用的格式为根?.扩展名,其中 ? 为一个或多个数字(1、2、3 等)。

备注

此方法常用于为新的项目项生成名称。

如果将 KeyFile 作为根,将 snk 作为扩展名调用此方法,则返回的字符串为 KeyFile.snk(如果文件 KeyFile.snk 尚未存在)。 如果文件 KeyFile.snk 已存在,则返回 KeyFile1.snk。 请注意,如果对此方法进行多个调用,并且没有从返回的文件名创建任何文件,则所有调用将返回相同的值。 结果只取决于在该方法调用时存在的文件。

示例

此示例以 root?.ext 的形式显示项目文件夹中唯一的文件名。若要将此示例作为外接程序运行,请参见如何:编译和运行自动化对象模型代码示例。 在运行此示例之前,请打开一个 Visual Basic 或 Visual C# 项目。

[Visual Basic]

' This example displays a file name that is unique in the 
     ' project folder, in the form, root?.ext.
Public Sub OnConnection(ByVal application As Object,_
 ByVal connectMode As ext_ConnectMode, ByVal addInInst As Object, _
 ByRef custom As Array) Implements IDTExtensibility2.OnConnection
    applicationObject = CType(application, DTE2)
    addInInstance = CType(addInInst, AddIn)
    GetUniqueName(applicationObject)
End Sub
Sub GetUniqueName(ByVal dte As DTE2)
    Dim proj As Project
    proj = applicationObject.Solution.Projects.Item(1)
    Dim vsproj As VSLangProj80.VSProject2 = _
    CType(proj.Object, VSLangProj80.VSProject2)
    MsgBox(vsproj.GetUniqueFilename(proj, "Root", "ext"))
End Sub

[C#]

using System.Windows.Forms;
using VSLangProj;
using VSLangProj2;
using VSLangProj80;
// This example displays a file name that is unique in the 
// project folder, in the form, root?.ext.
public void OnConnection(object application,
 ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
    applicationObject = (DTE2)application;
    addInInstance = (AddIn)addInInst;
    GetUniqueName((DTE2)applicationObject);
}
public void GetUniqueName(DTE2 dte)
{
    Project proj = null;
    proj = applicationObject.Solution.Projects.Item(1);
    VSLangProj80.VSProject2 vsproj = 
((VSLangProj80.VSProject2)(proj.Object));
    MessageBox.Show(vsproj.GetUniqueFilename(proj, "Root", "ext"));
}

.NET Framework 安全性

请参阅

参考

VSProject2 接口

VSLangProj80 命名空间