远程服务器上共享文件夹的上传与下载

  • 环境配置
  • 代码实现

环境配置

1.远程服务器上选择需要共享的文件夹,右键——属性——共享,设置为共享,并把只读去掉
详情可参考https://blog.csdn.net/btt2013/article/details/51142507

代码实现

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Diagnostics;
namespace ConsoleApplication1
{class Program{static void Main(string[] args){bool status = false;//连接共享文件夹status = connectState(@"\\192.168.2.144\Test2", "Admin", "123");if (status){//共享文件夹的目录DirectoryInfo theFolder = new DirectoryInfo(@"\\192.168.2.144\Test2\");//获取保存文件的路径string PathName = theFolder.ToString();//执行方法Transport(@"D:\Test.txt", PathName, "4.txt");  //上传文件到另一台电脑的共享文件夹,需要设置共享文件夹的权限,共享文件夹不要设在桌面TransportRemoteToLocal(@"D:\Test2.txt", PathName, "2.txt");  //从另一电脑的共享文件夹下载文件到本机}else{}Console.ReadKey();}public static bool connectState(string path){return connectState(path, "", "");}/// <summary>/// 连接远程共享文件夹/// </summary>/// <param name="path">远程共享文件夹的路径</param>/// <param name="userName">用户名</param>/// <param name="passWord">密码</param>/// <returns></returns>public static bool connectState(string path, string userName, string passWord){bool Flag = false;Process proc = new Process();try{proc.StartInfo.FileName = "cmd.exe";proc.StartInfo.UseShellExecute = false;proc.StartInfo.RedirectStandardInput = true;proc.StartInfo.RedirectStandardOutput = true;proc.StartInfo.RedirectStandardError = true;proc.StartInfo.CreateNoWindow = true;proc.Start();string dosLine = "net use " + path + " " + passWord + " /user:" + userName;proc.StandardInput.WriteLine(dosLine);proc.StandardInput.WriteLine("exit");while (!proc.HasExited){proc.WaitForExit(1000);}string errormsg = proc.StandardError.ReadToEnd();proc.StandardError.Close();if (string.IsNullOrEmpty(errormsg)){Flag = true;}else{throw new Exception(errormsg);}}catch (Exception ex){throw ex;}finally{proc.Close();proc.Dispose();}return Flag;}/// <summary>/// 向远程文件夹保存本地内容,或者从远程文件夹下载文件到本地/// </summary>/// <param name="src">要保存的文件的路径,如果保存文件到共享文件夹,这个路径就是本地文件路径如:@"D:\1.avi"</param>/// <param name="dst">保存文件的路径,不含名称及扩展名</param>/// <param name="fileName">保存文件的名称以及扩展名</param>public static void Transport(string src, string dst, string fileName){FileStream inFileStream = new FileStream(src, FileMode.Open);if (!Directory.Exists(dst)){Directory.CreateDirectory(dst);}dst = dst + fileName;if (!File.Exists(dst)){FileStream outFileStream = new FileStream(dst, FileMode.Create, FileAccess.Write);byte[] buf = new byte[inFileStream.Length];int byteCount;while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0){outFileStream.Write(buf, 0, byteCount);}inFileStream.Flush();inFileStream.Close();outFileStream.Flush();outFileStream.Close();}}/// <summary>/// 从远程服务器下载文件到本地/// </summary>/// <param name="src">下载到本地后的文件路径,包含文件的扩展名</param>/// <param name="dst">远程服务器路径(共享文件夹路径)</param>/// <param name="fileName">远程服务器(共享文件夹)中的文件名称,包含扩展名</param>public static void TransportRemoteToLocal(string src, string dst, string fileName)   //src:下载到本地后的文件路径  dst:远程服务器路径 fileName:远程服务器dst路径下的文件名{if (!Directory.Exists(dst)){Directory.CreateDirectory(dst);}dst = dst + fileName;FileStream inFileStream = new FileStream(dst, FileMode.Open);    //远程服务器文件  此处假定远程服务器共享文件夹下确实包含本文件,否则程序报错FileStream outFileStream = new FileStream(src, FileMode.OpenOrCreate);   //从远程服务器下载到本地的文件byte[] buf = new byte[inFileStream.Length];int byteCount;while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0){outFileStream.Write(buf, 0, byteCount);}inFileStream.Flush();inFileStream.Close();outFileStream.Flush();outFileStream.Close();}}
}

远程服务器上共享文件夹的上传与下载相关推荐

  1. 远程服务器添加共享文件夹,远程服务器添加共享文件夹

    远程服务器添加共享文件夹 内容精选 换一换 制作Docker镜像,有以下两种方法.快照方式制作镜像(偶尔制作的镜像):在基础镜像上,比如Ubuntu,先登录镜像系统并安装Docker软件,然后整体制作 ...

  2. 怎样访问远程服务器文件夹,访问远程服务器的共享文件夹

    访问远程服务器的共享文件夹 内容精选 换一换 FOTA升级作用:在官方更新新固件后,模组设备无需寄回给官方,而是通过远程FTP/HTTP进行OTA升级固件,以更新新固件版本,从而达到更新设备的功能/B ...

  3. 易语言 上传文件到远程服务器,易语言与向远程服务器发送文件夹

    易语言与向远程服务器发送文件夹 内容精选 换一换 一.IDEA连接SSH 确认你的密码输对了,还好我保存了我的远程服务器的密码,原先我一直以为我输对了,导致一直报错Auth fail 点击ok,连接上 ...

  4. 服务器上文件夹没有共享,服务器没有共享文件夹

    服务器没有共享文件夹 内容精选 换一换 本节操作介绍本地MacOS系统主机通过安装"Microsoft Remote Desktop for Mac"工具向Windows云服务器传 ...

  5. 从一台 Windows 10 上共享文件夹到Docker中的Volume卷

    本文的内容是之前三篇内容的结合: <Docker for Windows 自动共享本机文件的脚本示例> http://blog.csdn.net/hu_zhenghui/article/d ...

  6. 如何访问云服务器的共享文件,怎么访问云服务器的共享文件夹

    怎么访问云服务器的共享文件夹 内容精选 换一换 本章节指导用户挂载已有数据的共享云硬盘,只可以用作数据盘.您可以在磁盘列表中查看磁盘信息,磁盘信息符合以下条件,该磁盘支持挂载至云服务器用作数据盘.共享 ...

  7. 服务器怎么和本地共享文件夹同步,云服务器如何共享文件夹同步

    云服务器如何共享文件夹同步 内容精选 换一换 弹性负载均衡(Elastic Load Balance,简称ELB)是将访问流量根据分配策略分发到后端多台服务器云主机的流量分发控制服务. 远程桌面协议( ...

  8. 服务器云共享文件夹权限设置方法,服务器云共享文件夹权限设置方法

    服务器云共享文件夹权限设置方法 内容精选 换一换 本文介绍了镜像服务IMS产品新特性和对应的文档动态,新特性将在各个区域(Region)陆续发布,欢迎体验.关于镜像服务(IMS)的更多历史版本变更内容 ...

  9. 两台云服务器怎么共享文件夹,云服务器怎么共享文件夹

    云服务器怎么共享文件夹 内容精选 换一换 Linux云服务器变更规格时,可能会发生磁盘挂载失败的情况,因此,变更规格后,需检查磁盘挂载状态是否正常.本节操作介绍变更规格后检查磁盘挂载状态的操作步骤.以 ...

最新文章

  1. shell脚本——字符串 数组
  2. python每一句后面可以加也可以不加分号
  3. Unity3d Fast Indirect illumination Using Two Virtual Spherical Gaussian Lights-Square Enix论文
  4. Ecshop中的ajax+json
  5. 字符串转Unicode码
  6. Honeywell1900霍尼韦尔 扫描二维码 QT 客户端显示数据
  7. 使用Zxing及豆瓣API
  8. iDB-数据库自动化运维平台
  9. 智能ALMP封装推拉力测试机 剪切力强度测试仪器主要功能介绍
  10. nmap系统版本扫描
  11. SWD调试接口接上下拉电阻
  12. 解决idea集成maven在使用骨架构建项目报错问题
  13. linux fish 中set 设定PATH 和BROWSER
  14. 一文搞懂地域和可用区如何选择
  15. easyconnect连接不上解决办法
  16. 「硬见小百科」电容使用误区及参数公式
  17. 《Euclidea3》-Eta-07
  18. 发那科机器人控制柜示教器不通电_邳州FANUC示教器维修维修{机器人故障免费检测}...
  19. plot、subplot函数的简单应用-matlab
  20. 《AlwaysRun!团队》第二次作业:团队项目选题报告

热门文章

  1. 教你如何找到别人不要的亚马逊listing来卖货赚钱
  2. chrome: 利用谷歌插件解决复制文本时出现小尾巴的问题
  3. android 钢琴识别音阶对错_Sans钢琴音阶手机版|Sans钢琴音阶安卓版下载 v1.4 - 跑跑车安卓网...
  4. 汉中市中心医院招聘计算机考试试题,陕西汉中市中心医院2019年招聘考试报名条件...
  5. 网络工程师(软考)学习笔记1--计算机网络简介及分类
  6. 带你走进计算机辅助药物设计(CADD)蛋白质分子对接
  7. 企业如何高效进行软文营销呢?
  8. 读取S50-IC卡的所有扇区、数据块
  9. Asio Reactor-Style Operations
  10. 4.2.3 标准编码