次の方法で共有


VSProject2.GetUniqueFilename メソッド (Object, String, String)

プロジェクト内で一意のファイル名を生成します。新しいプロジェクト項目に名前を付けるために使用します。

名前空間:  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
    型 : System.Object
    生成されるファイル名の拡張子になります。
  • bstrRoot
    型 : System.String
    Project オブジェクトまたはフォルダーの ProjectItem オブジェクト。生成されるファイル名は、このコンテキスト内で一意になります。
  • bstrDesiredExt
    型 : System.String
    生成される名前は、この文字列で始まります。

戻り値

型 : System.String
プロジェクトまたはプロジェクト フォルダーで一意のファイル名を表す文字列。最初のパラメーターが Project インスタンスの場合、生成される名前はルート プロジェクト フォルダー内で一意になります。ファイル名は Root?.Extension の形式です。? には、1、2、3 などの 1 つ以上の数字が入ります。

解説

このメソッドは一般的に、新しいプロジェクト項目の名前を生成するときに使用します。

ルートに 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 インターフェイス

GetUniqueFilename オーバーロード

VSLangProj80 名前空間