体检系统架构
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

69 lines
2.4 KiB

using System.Net;
namespace DcmToPng.Helper
{
public static class DownloadHelper
{
/// <summary>
/// 下载
/// </summary>
/// <param name="dcmPathList">Dictionary(文件名称.dcm,共享文件夹路径) </param>
public static void Down(Dictionary<string, string> dcmPathList)
{
if (!Directory.Exists(Constant.DcmPath))
Directory.CreateDirectory(Constant.DcmPath);
var i = 0;
foreach (var item in dcmPathList)
{
try
{
if (File.Exists(Path.Combine(Constant.DcmPath, item.Key))) continue;
using var client = new WebClient();
// 配置授权账户密码
var credentials = new NetworkCredential(Constant.UserName, Constant.Password);
client.Credentials = credentials;
var buffer = client.DownloadData(item.Value);
var isSave = Bytes2File(buffer, Constant.DcmPath, item.Key);
if (isSave) i++;
}
catch (Exception e)
{
Console.WriteLine($"[Down][Error]" + item.Key + " | " + e.Message);
}
}
Console.WriteLine($"[DCM文件下载成功]" + i);
}
/// <summary>
/// 将byte数组转换为文件并保存到指定地址
/// </summary>
/// <param name="buff">byte数组</param>
/// <param name="path">保存地址</param>
/// <param name="fileName"></param>
public static bool Bytes2File(byte[] buff, string path, string fileName)
{
try
{
//如果不存在就创建Enclosure文件夹 
if (Directory.Exists(path) == false)
Directory.CreateDirectory(path);
if (File.Exists(path + fileName))
File.Delete(path + fileName);
var fs = new FileStream(path + fileName, FileMode.CreateNew);
var bw = new BinaryWriter(fs);
bw.Write(buff, 0, buff.Length);
bw.Close();
fs.Close();
return true;
}
catch (Exception e)
{
Console.WriteLine(e.Message);
return false;
}
}
}
}