一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - C#如何訪問共享文件夾或者磁盤

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

2022-02-24 13:59邊界流浪者 C#

這篇文章主要為大家詳細介紹了C#訪問共享文件夾或者磁盤,需要用戶名密碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

SharedTool:

?
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
70
71
72
73
74
75
76
77
78
79
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); 
    
  
}

 案例:

?
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
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(); 
    
  
}

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

原文鏈接:https://blog.csdn.net/qq_16542775/article/details/52779812

延伸 · 閱讀

精彩推薦
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
主站蜘蛛池模板: 亚洲大片免费观看 | 亚洲情欲网 | 免费精品在线视频 | 3d欧美人禽交 | 亚洲日本在线观看网址 | 黄色大片免费网站 | 暖暖视频高清图片免费完整版 | 污到湿的爽文免费阅读 | 久久99亚洲AV无码四区碰碰 | 麻豆资源| 亚洲欧美一区二区三区在线观看 | 亚洲va韩国va欧美va天堂 | 无套内谢大学生A片 | 亚洲精品人成网在线播放影院 | 成人看片免费无限观看视频 | 鸥美毛片 | 欧美日韩精品一区二区三区视频播放 | 亚洲欧美一 | 国产农村一一级特黄毛片 | 无限在线观看免费入口 | 第一国内永久免费福利视频 | 色妞视频一级毛片 | 爱情岛论坛自拍永久入口 | 精品国产午夜久久久久九九 | 国产午夜精品一区二区三区不卡 | 国产videos hd | 99久久香蕉国产综合影院 | 精品国产福利在线 | ffee性xxⅹ另类老妇hd | 视频免费| 91视频a | 我的男友是消防员在线观看 | 午夜理论电影在线观看亚洲 | 大桥未久midd—962在线 | 网红思瑞一区二区三区 | 午夜秀场在线观看 | 久久久久免费视频 | 91大神大战高跟丝袜美女 | 亚洲天堂成人在线观看 | 女教师巨大乳孔中文字幕免费 | jizz女16处 |