Freigeben über


VSProject2.GetUniqueFilename-Methode

Generiert einen eindeutigen Dateinamen im Projekt. es wird zum Benennen neuer Projektelementen verwendet.

Namespace:  VSLangProj80
Assembly:  VSLangProj80 (in VSLangProj80.dll)

Syntax

'Declaration
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

Parameter

  • pDispatch
    Typ: Object

    Als Erweiterung für den generierten Namen wird dieser Wert verwendet.

  • bstrRoot
    Typ: String

    Ein Project-Objekt oder ein ProjectItem-Ordnerobjekt. Der generierte Dateiname ist in diesem Kontext eindeutig.

  • bstrDesiredExt
    Typ: String

    Der generierte Name beginnt mit dieser Zeichenfolge.

Rückgabewert

Typ: String
Eine Zeichenfolge, die einen im Projekt oder Projektordner eindeutigen Dateinamen darstellt.Wenn es sich beim ersten Parameter um eine Project-Instanz handelt, ist der generierte Name innerhalb des Stammprojektordners eindeutig.Der Dateiname hat das Format Stamm?.Erweiterung, wobei ? einer oder mehreren Ziffern (1, 2, 3 usw.) entspricht.

Hinweise

Diese Methode wird typischerweise angewendet, um einen Namen für ein neues Projektelement zu erstellen.

Wenn Sie diese Methode mit KeyFile als Stamm und .snk als Erweiterung aufrufen, wird die Zeichenfolge KeyFile.snk zurückgegeben, sofern die Datei KeyFile.snk noch nicht vorhanden ist. Wenn die Datei KeyFile.snk bereits vorhanden ist, wird KeyFile1.snk zurückgegeben. Beachten Sie, dass alle Aufrufe denselben Wert zurückgeben, wenn diese Methode mehrfach aufgerufen und keine Datei aus dem zurückgegebenen Dateinamen erstellt wird. Welche Ergebnisse angezeigt werden, hängt ausschließlich von den Dateien ab, die zum Zeitpunkt des Methodenaufrufs vorhanden waren.

Beispiele

In diesem Beispiel wird ein im Projektordner eindeutiger Dateiname im Format root?.ext angezeigt. Um dieses Beispiel als Add-In auszuführen, informieren Sie sich unter Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell. Öffnen Sie ein Visual Basic- oder ein Visual C#-Projekt, bevor Sie dieses Beispiel ausführen.

[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-Sicherheit

Siehe auch

Referenz

VSProject2 Schnittstelle

VSLangProj80-Namespace