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]

JavaScript für .NET-Entwickler

Sie sind .NET-Entwickler und nun stehen Sie vor der Aufgabe, JavaScript in Ihre Arbeit einzubinden. Die Schulung vermittelt Ihnen die JavaScript Grundlagen und die Funktionen der Scriptsprache. Sie wissen, wie objektorientierte Programmierung in JavaScript funktioniert und lernen abschließend Best Practicies Fälle kennen.

C# Komplett

Sie kennen sich in objektorientierter Programmierung aus. Sie schreiben C++ oder Java? Und nun stehen Sie vor der Aufgabe, in C# Anwendungen zu erstellen. Das C# Komplett-Seminar verschafft Ihnen umfassende Programmierkenntnisse in dieser Sprache. Nach der Schulung entwickeln Sie selbständig Anwendungen mit C#. Sie kennen die Datentypen und Klassenbibliotheken der objektorientierten Programmiersprache C#. Der Komplettkurs setzt bei den Grundlagen von C# ein. Sie arbeiten mit Variablen und konvertieren Typen. Multithreading, Delegates, Generics sind nach dem Seminar für Sie kein Geheimnis mehr.

#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!