首页 > 编程语言 >ASP .NET Core 访问共享文件夹

ASP .NET Core 访问共享文件夹

时间:2022-11-07 21:16:10浏览次数:49  
标签:Core ASP shareUrl list auth 文件夹 var NET smb

ASP .NET Core 访问Windows共享目录

安装Neget包

Install-Package   SharpCifs.Std

CodeSample

using SharpCifs.Smb;
using System.IO;
using System.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //Windows文件共享目录
            string shareUrl = @"\\Rainfate\1";

            //这里使用的共享目录字符串模板:smb://10.50.140.4/temp/MG/
            //smb:是固定的,后面接地址 文件夹目录一定要以“/”结尾不然获取会报错,文件不需要

            //文件夹最后一定要加斜杠,文件不用加
            shareUrl = shareUrl.Replace('\\', '/').TrimEnd('/') + "/";

            //文件夹认证
            NtlmPasswordAuthentication auth = null;
            //auth = new NtlmPasswordAuthentication("UserName:Password");
            //auth = new NtlmPasswordAuthentication("Domain", "UserName", "Password");

            var smb = new SmbFile($"smb:{shareUrl}", auth: auth);

            //判断是否可以正常访问
            smb.Connect();

            //获取所有共享目录的文件和文件夹
            var list = smb.ListFiles();

            //获取所有文件
            var smbListFiles = list.Where(f => f.IsFile()).ToList();

            //获取所有文件夹
            var smbListFolders = list.Where(f => f.IsDirectory()).ToList();

            //获取文件/文件夹名称。
            var name = list.First().GetName();

            //文件夹后面会自带一个斜杠,代表文件夹
            System.Console.WriteLine("folder/");
            System.Console.WriteLine("file.txt");

            //获取文件流
            Stream stream = smbListFiles.First().GetInputStream();

            stream.Close();
        }
    }
}

标签:Core,ASP,shareUrl,list,auth,文件夹,var,NET,smb
From: https://www.cnblogs.com/RainFate/p/16867447.html

相关文章