最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#如何訪問共享文件夾或者磁盤

 更新時間:2018年05月21日 14:14:46   作者:邊界流浪者  
這篇文章主要為大家詳細介紹了C#訪問共享文件夾或者磁盤,需要用戶名密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C#訪問共享文件夾或者磁盤的具體代碼,供大家參考,具體內容如下

SharedTool:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Runtime.InteropServices;  
  
namespace ConsoleApplication5  
{  
  public class SharedTool : IDisposable  
  {  
    // obtains user token     
    [DllImport("advapi32.dll", SetLastError = true)]  
    static extern bool LogonUser(string pszUsername, string pszDomain, string pszPassword,  
      int dwLogonType, int dwLogonProvider, ref IntPtr phToken);  
  
    // closes open handes returned by LogonUser     
    [DllImport("kernel32.dll", CharSet = CharSet.Auto)]  
    extern static bool CloseHandle(IntPtr handle);  
  
    [DllImport("Advapi32.DLL")]  
    static extern bool ImpersonateLoggedOnUser(IntPtr hToken);  
  
    [DllImport("Advapi32.DLL")]  
    static extern bool RevertToSelf();  
    const int LOGON32_PROVIDER_DEFAULT = 0;  
    const int LOGON32_LOGON_NEWCREDENTIALS = 9;//域控中的需要用:Interactive = 2     
    private bool disposed;  
  
    public SharedTool(string username, string password, string ip)  
    {  
      // initialize tokens     
      IntPtr pExistingTokenHandle = new IntPtr(0);  
      IntPtr pDuplicateTokenHandle = new IntPtr(0);  
  
      try  
      {  
        // get handle to token     
        bool bImpersonated = LogonUser(username, ip, password,  
          LOGON32_LOGON_NEWCREDENTIALS, LOGON32_PROVIDER_DEFAULT, ref pExistingTokenHandle);  
  
        if (bImpersonated)  
        {  
          if (!ImpersonateLoggedOnUser(pExistingTokenHandle))  
          {  
            int nErrorCode = Marshal.GetLastWin32Error();  
            throw new Exception("ImpersonateLoggedOnUser error;Code=" + nErrorCode);  
          }  
        }  
        else  
        {  
          int nErrorCode = Marshal.GetLastWin32Error();  
          throw new Exception("LogonUser error;Code=" + nErrorCode);  
        }  
      }  
      finally  
      {  
        // close handle(s)     
        if (pExistingTokenHandle != IntPtr.Zero)  
          CloseHandle(pExistingTokenHandle);  
        if (pDuplicateTokenHandle != IntPtr.Zero)  
          CloseHandle(pDuplicateTokenHandle);  
      }  
    }  
  
    protected virtual void Dispose(bool disposing)  
    {  
      if (!disposed)  
      {  
        RevertToSelf();  
        disposed = true;  
      }  
    }  
  
    public void Dispose()  
    {  
      Dispose(true);  
    }  
  }  
} 

 案例:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.IO;  
  
namespace ConsoleApplication5  
{  
  class Program  
  {  
    static void Main(string[] args)  
    {  
      using (SharedTool tool = new SharedTool("administrator", "12345678", "192.168.1.101"))  
      {  
        string selectPath = @"\\192.168.1.101\c$";  
  
        var dicInfo = new DirectoryInfo(selectPath);//選擇的目錄信息  
  
        DirectoryInfo[] dic = dicInfo.GetDirectories("*.*", SearchOption.TopDirectoryOnly);  
        foreach (DirectoryInfo temp in dic)  
        {  
          Console.WriteLine(temp.FullName);  
        }  
  
        Console.WriteLine("---------------------------");  
        FileInfo[] textFiles = dicInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly);//獲取所有目錄包含子目錄下的文件  
        foreach (FileInfo temp in textFiles)  
        {  
          Console.WriteLine(temp.Name);  
        }  
      }  
      Console.ReadKey();  
    }  
  }  
}  

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • C#?模式匹配完全指南

    C#?模式匹配完全指南

    模式匹配是一種高端的使用機制,它允許程序員在開發(fā)的時候以對象的類型作為條件篩選和分情況處理的一種手段,本文給大家介紹C#?模式匹配完全指南,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Base64編碼解碼原理及C#編程實例

    Base64編碼解碼原理及C#編程實例

    這篇文章主要介紹了Base64編碼解碼原理及C#編程實例,本文講解了Base64編碼由來、Base64編碼原理、C#編程實現(xiàn),需要的朋友可以參考下
    2014-10-10
  • C# 線程相關知識總結

    C# 線程相關知識總結

    這篇文章主要介紹了C# 線程相關知識,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • C#基于Windows服務的聊天程序(1)

    C#基于Windows服務的聊天程序(1)

    這篇文章主要為大家詳細介紹了C#基于Windows服務的聊天程序的第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 分享一個C#編寫簡單的聊天程序(詳細介紹)

    分享一個C#編寫簡單的聊天程序(詳細介紹)

    這是一篇基于Socket進行網(wǎng)絡編程的入門文章,我對于網(wǎng)絡編程的學習并不夠深入,這篇文章是對于自己知識的一個鞏固,同時希望能為初學的朋友提供一點參考。文章大體分為四個部分:程序的分析與設計、C#網(wǎng)絡編程基礎(篇外篇)、聊天程序的實現(xiàn)模式、程序實現(xiàn)
    2015-12-12
  • DevExpress之ChartControl的SeriesTemplate實例

    DevExpress之ChartControl的SeriesTemplate實例

    這篇文章主要介紹了DevExpress之ChartControl的SeriesTemplate用法實例,實現(xiàn)了餅狀Series百分比顯示的效果,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-10-10
  • C# 鼠標穿透窗體功能的實現(xiàn)方法

    C# 鼠標穿透窗體功能的實現(xiàn)方法

    通過以下代碼,在窗體啟動后調用方法SetPenetrate() 即可實現(xiàn)窗體的穿透功能,有需要的朋友可以參考一下
    2013-10-10
  • opencvsharp瑕疵檢測的實現(xiàn)示例

    opencvsharp瑕疵檢測的實現(xiàn)示例

    本文主要介紹了opencvsharp瑕疵檢測的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • C# 將學生列表轉換為字典的實現(xiàn)

    C# 將學生列表轉換為字典的實現(xiàn)

    在開發(fā)應用程序時,管理和處理數(shù)據(jù)結構是非常重要的一環(huán),本文就來介紹一下C# 將學生列表轉換為字典的實現(xiàn),感興趣的可以了解一下
    2025-01-01
  • 親自教你實現(xiàn)棧及C#中Stack源碼分析

    親自教你實現(xiàn)棧及C#中Stack源碼分析

    大家都知道棧的實現(xiàn)方式有兩種,一種是基于數(shù)組實現(xiàn)的順序棧,另一種是基于鏈表實現(xiàn)的鏈式棧。這篇文章主要介紹了手把手教你實現(xiàn)棧以及C#中Stack源碼分析,需要的朋友可以參考下
    2021-09-09

最新評論

海安县| 荃湾区| 买车| 溆浦县| 辽中县| 昭通市| 瓦房店市| 无棣县| 高陵县| 玛多县| 南陵县| 芜湖市| 和林格尔县| 库伦旗| 黑龙江省| 辽阳县| 巴彦县| 锡林浩特市| 威信县| 出国| 隆化县| 克什克腾旗| 三门峡市| 临城县| 汝城县| 盘山县| 雅江县| 深圳市| 卢氏县| 鸡泽县| 汉寿县| 和静县| 阳城县| 晋宁县| 青冈县| 夹江县| 寻甸| 阿拉善盟| 阆中市| 黔东| 开化县|