dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1314 | Anzahl registrierter User: 1266 | Besucher online: 338
Hauptmenü
Home
Snippet Wettbewerb
Top Ten
Zufälliger Snippet
Vista Gadget
T-Shirts für Geeks
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social
Facebook
Twitter
RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss Delphi.NET
Rss ASP.NET
Werbung
Alice DSL Flatrate

Partner
Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

UNC-Pfad ermitteln


Autor: Christopher Wolf
Sprache: C#
Bewertung: 8,2
(1 Bewertung)

Anzahl der Aufrufe: 2721
  

Beschreibung:

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.


Abgelegt unter: UNC, UNC-Pfad, Pfad, ermitteln, erzeugen.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#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
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.