C#创建及访问网络硬盘的实现

在某些场景下我们需要远程访问共享硬盘空间,从而实现方便快捷的访问远程文件。比如公司局域网内有一台电脑存放了大量的文件,其它电脑想要访问该电脑的文件,就可以通过网络硬盘方式实现,跟访问本地硬盘同样的操作,很方便且快速。通过C#我们可以实现网络硬盘的自动化管理。

创建一个类WebNetHelper,在类中加入如下成员变量及成员函数,

static public WebNetHelper wnh=null;
private string remoteHost;//远程主机的共享磁盘,形式如\\1.1.1.1\cc
private string destionDisk;//要访问的磁盘盘符
private string remoteUserName;//登录远程主机的用户名
private string passWord;//登录远程主机的密码

访问网络硬盘,

public bool Connect()
{
    try
    {
        string cmdString = string.Format(@"net use {1}: {0} {3} /user:{2} >NUL",this.RemoteHost,
        this.DestionDisk, this.RemoteUserName,this.PassWord);
        this.WriteStringToComman(cmdString);
        return true;
    }
    catch (Exception e)
    {
        throw e;
    }
}

断开网络映射,

public bool Disconnect()
{
    try
    {
        string cmdString=string.Format(@"net use {0}: /delete >NUL",this.DestionDisk);
        this.WriteStringToComman(cmdString);
        return true;
    }
    catch (Exception e)
    {
        throw e;
    }
}

执行CMD命令,

private bool WriteStringToComman(string cmdString)
{
    bool Flag = true;
    Process proc = new Process();
    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;
    try
    {
        proc.Start();
        string command = cmdString;
        proc.StandardInput.WriteLine(command);
        command = "exit";
        proc.StandardInput.WriteLine(command);
        while (proc.HasExited == false)
        {
            proc.WaitForExit(1000);
        }
        string errormsg = proc.StandardError.ReadToEnd();
        if (errormsg != "")
            Flag = false;
        proc.StandardError.Close();
        return Flag;
    }
    catch (Exception e)
    {
        throw e;
    }
    finally
    {
        proc.Close();
        proc.Dispose();
    }
}

然后test函数为测试使用的过程。\\1.1.1.1\cc为网络硬盘地址,K为要映射的盘符,"Noner"为远程主机的登录名,"uiosdsau"为远程主机的密码。Test函数为读取网络硬盘下的ImbaMallLog.txt文件内容的第一行。

/// <summary>
/// 测试函数,测试使用该类
/// </summary>
private void test()
{
    try
    {
        if (!Directory.Exists(@"K:\"))
        {
            WebNetHelper.wnh = new WebNetHelper(@"\\1.1.1.1\cc", "K", "Noner", "uiosdsau");
            WebNetHelper.wnh.Connect();
        }
        StreamReader sr = new StreamReader(@"K:\ImbaMallLog.txt");
        string tt = sr.ReadLine();
        //MessageBox.Show(tt);
        sr.Close();
        sr.Dispose();
        if (WebNetHelper.wnh != null)
        {
            WebNetHelper.wnh.Disconnect();
        }
    }
    catch (Exception e)
    {
        //MessageBox.Show(e.Message);
    }
}

到此这篇关于C#创建及访问网络硬盘的实现的文章就介绍到这了,更多相关C# 访问网络硬盘内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C#实现读取指定盘符硬盘序列号的方法

    本文实例讲述了C#实现读取指定盘符硬盘序列号的方法.分享给大家供大家参考,具体如下: using System; using System.IO; using System.Runtime.InteropServices; using System.Text; using Microsoft.Win32; namespace Wjb.ReadOrWriteIniAndReg { /**/////// 读取指定盘符的硬盘序列号 /// public class HardDiskVal { [Dll

  • C# 获取硬盘号,CPU信息,加密解密技术的步骤

    在我们编写好一款软件后,我们不想别人盗用我们的软件,这时候我们可以采用注册的方式来保护我们的作品.这时候我们可能就需要简单了解一下加密解密技术,下面是我的简单总结: 第一步:程序获得运行机的唯一标示(比如:网卡号,CPU编号,硬盘号等等). 第二步:程序将获得的唯一标示加密,然后有用户或者程序将加密后的标示发送给你. 第三步:你将加密后的标示解密(其实这时候你获得的就是:网卡号,CPU编号,硬盘号)然后你再将网卡号,CPU编号,硬盘号加密发送给客户注册. 第四步:程序将你发送的注册号进行解密,解

  • C#获取机器码的方法详解(机器名,CPU编号,硬盘编号,网卡mac等)

    本文实例讲述了C#获取机器码的方法.分享给大家供大家参考,具体如下: using System.Runtime.InteropServices; using System.Management; using System; public class HardwareInfo { //取机器名 public string GetHostName() { return System.Net.Dns.GetHostName(); } //取CPU编号 public String GetCpuID()

  • C#利用win32 Api 修改本地系统时间、获取硬盘序列号

    C#利用win32 Api 修改本地系统时间.获取硬盘序列号,可以用于软件注册机制的编写! 复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace Fengyun {     public class Win32     {         #region 修改本地系统时间         [DllIm

  • C#获取硬盘编号的方法

    本文实例讲述了C#获取硬盘编号的方法.分享给大家供大家参考.具体实现方法如下: ManagementClass mc = new ManagementClass("Win32_PhysicalMedia"); //Win32_DiskDrive不包含SerialNumber属性. ManagementObjectCollection moc = mc.GetInstances(); string strID = null ; foreach( ManagementObject mo i

  • 用C#获取硬盘序列号,CPU序列号,网卡MAC地址的源码

    privatestring[]GetMoc() { string[]str=newstring[3]; ManagementClassmcCpu=newManagementClass("win32_Processor"); ManagementObjectCollectionmocCpu=mcCpu.GetInstances(); foreach(ManagementObjectminmocCpu) { str[0]=m["ProcessorId"].ToStrin

  • C#获取硬盘序列号的问题小结

    先给大家描述下问题的来龙去脉. 具体问题是这样的:我用下面这段获取硬盘型信息的代码做成的exe文件,在机子上测试的时候,出现直接双击运行和用管理员身份运行结果不一样的情况,这个问题该怎么解决? public static String GetHardWareId() { String num = null; List<String> hdids = new List<string>(); ManagementClass mc = new ManagementClass("

  • C#检测移动硬盘并获取移动硬盘盘符的方法

    网上找了很久关于C#检测移动硬盘并获取盘符的代码但没能找到,所以只能自己解决了 C#获取所有硬盘 var arr = DriveInfo.GetDrives(); 得出的所有磁盘,发现对于移动硬盘,DriveType 不是 Removable 类型,而是 Fixed 枚举类型. C#检测移动硬盘,网上找了很久,没有现成正确的代码,只有自己想办法了. 代码如下: public static List<string> GetListDisk() { List<string> lstDi

  • C#创建及访问网络硬盘的实现

    在某些场景下我们需要远程访问共享硬盘空间,从而实现方便快捷的访问远程文件.比如公司局域网内有一台电脑存放了大量的文件,其它电脑想要访问该电脑的文件,就可以通过网络硬盘方式实现,跟访问本地硬盘同样的操作,很方便且快速.通过C#我们可以实现网络硬盘的自动化管理. 创建一个类WebNetHelper,在类中加入如下成员变量及成员函数, static public WebNetHelper wnh=null; private string remoteHost;//远程主机的共享磁盘,形式如\\1.1.

  • asp.net 网络硬盘实现分析

    所谓"网络硬盘",就是将服务器的磁盘空间提供给用户使用,用户可以通过它在互联网上实现文件的上传,下载和删除以及文件夹的创建与删除.并可以通过共享文件实现文件的网络共享.  实际要求是在客户端完成对服务器系统文件或文件夹的访问,创建和删除等功能. 网络硬盘的功能要求: ● 用户登录.注销.用户注册 ● 新建文件夹.上传文件 ● 查看文件属性(包括:名称,所在目录,类型,大小,创建时间) ● 删除文件 ● 更换文件图标(分为大图标和小图标) ● 通过搜索找到自己的文件并可以下载 进入时需有

  • ASP.NET+XML打造网络硬盘原理分析

    常用传输方式及其在特定环境下面临的困难 我们经常有这样的应用需求:通过网络交换公共数据文件以实现资源共享,同时保护私有数据不被非法访问,并使用简单.直观的方式操作.我们常用的文件传输FTP.Email邮件.网上邻居都能实现文件的传送.其中,"Ftp"功能最为强大,但使用起来却稍显复杂,一大堆设置足以让许多人望而止步,尤其用户数量不可预见时,针对特殊需求用户的设置将更加繁琐:"Email"是大家所熟悉的了,但它的传送不仅需要你连入Internet,而且它的安全性也是个

  • 51files提供无限空间网络硬盘网络u盘

    [ 文件举报 ] 相信有不少被上传或是下载文件的版权是有疑问的, 我们也收到不少关于文件侵权的举报. 需要提醒举报人的是在发出举报的同时请一定详细说明举报该文件的原因. 对那些没有任何说明的举报我们很难判断. 所以举报文件时请认真说明原因, 我将仔细对待,并且积极删除不合法的文件. 可能是由于对单个文件大小的限制, 今天的访问量比前几天有所下降. 不过网站速度倒是快了不少. 我想满足所有人的需求是非常困难或是几乎不可能的事, 所以毕要的限定是在所难免的. 不过从我个人这样一个网络硬盘的使用者来说

  • ASP.NET设计网络硬盘之两重要类代码

    System.IO.File类和System.IO.FileInfo类 在设计和实现"网络硬盘"的过程中,将大量地使用和文件系统操作相关的内容.故本节先对和文件系统相关的两个.NET类进行简要介绍. System.IO.File类和System.IO.FileInfo类主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间.下面通过程序实例来介绍其主要属性和方法. (1) 文件打开方法:File.Open 该方法的声明如下: public static FileStre

  • ASP.NET设计网络硬盘之文件夹实现

    在介绍"网络硬盘"概念时已经提到,每个用户在"网络硬盘"上都有自己的一块空间.在下面程序设计中是这样处理的:为用户提供一个固定的文件夹,在这个文件夹下用户可以自己增加/删除新的文件夹或文件.如图1所示,首次打开网页时将列出该文件夹下的所有内容(包括文件和文件夹).如果想进入下一级文件夹,可以选中该文件夹,单击"打开"按钮进入.下面将就查看文件夹内容功能的实现分步骤进行说明. 图1 用户主界面 1. 页面加载 由于程序所提供的用户目录是固定的,如c

  • ASP.NET设计网络硬盘之查看文件夹实现代码

    就像操作本地的计算机一样,需要为每个网络用户提供各自的一块硬盘空间,用户登录后便可以对自己的空间进行管理.管理是多方面的,首先用户应该能看到自己文件夹下的所有内容,另外需要提供多级文件夹目录的支持. 下面要介绍的实例包括"网上硬盘"的许多功能,将一步步为大家进行介绍.首先创建工程实例,然后进行主界面的设计,最后对各个功能的实现分别进行介绍. 新工程创建 新工程创建的步骤如下: (1) 打开MicroSoft Visual Studio.NET应用程序. (2) 选择"文件&q

  • 推荐:二次发现桃源网络硬盘漏洞

    本人在第10期上的黑防刊登了桃源网络硬盘相关的漏洞后.马上就通知了桃源官方修复了相关漏洞.近日,下班后无聊,就重新下载了桃源网络硬盘的最新版本2.5进行全面检测.发现虽然修补了用".",另存.下载其网站的配置文件及数据库等漏洞.但用其它的方法作了个测试后发现,汗.还是存在相关漏洞,还有就是可以构造代码,任意查看网络硬盘所有文件的源代码及配置文件和数据库.好的,转入正题吧. 为了给大家给个真实的视觉效应,特意在官方详细测试.第一就是上传漏洞,在这里官方已经换上了最新版本的V2.5了.所在

  • Android Http协议访问网络实例(3种)

    之前关于Android Http协议访问网络的一点分析,最近需要回顾,就顺便发到随笔上了 Android中http连接主要是为了获取网络数据,目前了解的有3种方法: Httpconnection --本人常用 OKHTTP--看见过(需要在依赖中引入包) HttpClient--过气的方法(弃用) HTTPCONNECTION 由于网络连接是耗时操作不能在UI线程操作,一般通过Handler获取子线程中获取的数据 Handler mhandler=new Handler(){ @Override

  • Android开发之HTTP访问网络

    本文实例为大家详细介绍了Android开发之HTTP访问网络的相关代码,供大家参考,具体内容如下 代码1: package com.ywhttpurlconnection; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class Ywhttpur

随机推荐