Feedback

C# - UNC-Pfad ermitteln

Veröffentlicht von am 26.08.2009
(1 Bewertungen)
Mit diesem Snippet kann man einen UNC-Pfad aus einem Pfad erstellen lassen.
Sollte es nicht möglich sein einen UNC-Pfad zu erstellen wird ein leerer String zurück gegeben.

Um dieses Snippet nutzen zu können sind folgende Verweise einzubinden:
using System.IO;
using System.Runtime.InteropServices;
using System.Security.AccessControl;
using System.Windows.Forms;


Des weiteren muss auch eine *.dll Datei importiert werden. Dies ist im Snippet enthalten.
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

#region *.dll Import
[DllImport("mpr.dll", SetLastError = false, CharSet = CharSet.Auto)]
private static extern Int32 WNetGetConnection(string localName, StringBuilder
remoteName, ref Int32 remoteSize);
#endregion


#region +string GetPath(string sPath) // Netz- oder Lokaleslaufwerk als UNC bzw. Normal
#region XML-Doku
/// <summary>
///     Prüft ob Pfad Netzlaufwerk ist. Wenn ja, Pfad in UNC-Pfad umwandeln, sonst belassen.
/// </summary>
/// <param name="sPath">
///     benötigter Pfad zur Erstellung
/// </param>
/// <returns>UNC-Pfad</returns>
#endregion
public static string ConvertToUNC(string sPath)
{
    if (sPath.Trim().Length == 0)
        return "";

    string sTmp;
    DirectoryInfo di = new DirectoryInfo(sPath);
    FileInfo fi = new FileInfo(sPath);

    try
    {
        if ((di.Exists == true) || (fi.Exists == true))
        {
            new DirectorySecurity(sPath, AccessControlSections.Access);

            #region erzeugen des UNC-Pfads mit StringBuilder
            StringBuilder sbUNC = new StringBuilder(500);

            int length = sbUNC.Capacity;
            string LocalLetter = sPath.Substring(0, 2);

            WNetGetConnection(LocalLetter, sbUNC, ref length);
            #endregion

            // UNC-Pfad auf string Variable
            sTmp = sbUNC.ToString();


            if (sTmp.Length <= 0)
            {
                return sPath.Trim();
            }
            else
            {
                string result = sTmp + sPath.Substring(2);

                return result.Trim();
            }
        }
        else
        {
            MessageBox.Show("Der angegebene Pfad ist nicht existent oder es bestehen keine Zugriffsrechte.",
                            DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss") + " - Fehler",
                            MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }
    catch (Exception)
    { }

    return "";
}
#endregion
Abgelegt unter UNC, UNC-Pfad, Pfad, ermitteln, erzeugen.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!