首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>C#语言>NET编程实现在局域网之间互传文件的简单方法
NET编程实现在局域网之间互传文件的简单方法
来源: 发布时间:2008-08-26 发布人: 浏览: 人次   字体: [ ]  

    OA系统经常会用到局域网内互传文件,当然方法也比较多了,比如最为常用的是FTP了,还有WebService,WMI等等,今天我要说的是最简单的一种方法,就是利用DOS命令去连接对方的机器,然后就像操作本地的文件一样了

主要用到的命令就是ping和net use命令,思路就是先检查对方机器是否可以ping通,如果可以ping通,那么再使用net use命令去连接对方机器,连接成功则直接使用File类下面的方法,就像操作本地机器一样的。

那么在.NET中如何使用这两个命令呢?很简单,就是使用Process类调用cmd.exe,有关Process的更多信息请参考MSDN(http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

首先我们先看看ping的方法

//返回true则代表可以ping成功
//remoteHost为对方IP
public static bool Ping(string remoteHost)
{
    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 = @"ping -n 1 " + remoteHost;
        proc.StandardInput.WriteLine(dosLine);
        proc.StandardInput.WriteLine("exit");
        while (!proc.HasExited)
        {
            proc.WaitForExit(500);
        }

        string pingResult = proc.StandardOutput.ReadToEnd();
        if (pingResult.IndexOf("(0% loss)") != -1)
        {
            Flag = true;
        }
        proc.StandardOutput.Close() ;
    }
    catch (Exception ex)
    {
    }
    finally
    {
        proc.Close();
        proc.Dispose();
    }
    return Flag;
}
接下来就是使用net use连接对方机器

//返回true则代表可以连接成功
//remoteHost为对方IP userName为用户名 passWord为密码
public static bool Connect(string remoteHost, 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 \\" + remoteHost + " " + passWord + " " + " /user:" + userName + ">NUL";
        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;
        }
    }
    catch (Exception ex)
    {
    }
    finally
    {
        proc.Close();
        proc.Dispose();
    }
    return Flag;
}
如果连接成功,则可以使用FIle下面的方法,不如Copy文件等操作

注意:路径不要写错了!!!

还有就是使用完毕后再执行一遍net use命令,此时跟的参数是 /delete ,呵呵!


相 关 文 章   发布商链接
·C#开发中如何对SqlServer命名规范的...
·详解在c#语言中DateTime类的使用及其...
·小解c#中运行js代码实例
·探讨C#语言中??运算符的用法
·实例分析对比ref和out关键字的用法及...
·浅谈接口和抽象类的区别,加了自己的...
·什么是动态链接库?C#创建和调用DLL?
·C#如何调用C++写的动态链接库?
·C#语言基础之范型入门示例,附代码说...
·C#最为常用到的排序算法大全
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·有助快速理解C#委托和事件之...
·C#泛型学习笔记总结
·c#语言从dbf数据库提取数据并
·C#编写控制线程的运行和线程...
·怎样在C#中删除只读文件及其...
·C#函数中返回多个值的两种方...
·如何在C#中插入照片到Excel文
·如何在c#中获取事件注册的方...
·C#对timer类的使用操作代码
·什么是泛型?泛型的一些概述
·C#如何从文本文件读取信息并...
·如何在c#中去掉字符串中的回...
·如何使用C#获取IIS服务器版本...
·什么是泛型编程思想?及其简...
·c#子线程控制进度条的一个简...
热 门 文 章
·c#中收发邮件处理代码(POP3,...
·C#如何获取文件路径中的文件...
·什么是c#深拷贝与浅拷贝及其...
·C#中关于四舍五入函数的讨论...
·c#中的ArrayList属性祥解及其...
·C#语言实现创建、删除和移动...
·快速进行List排序的通用方法...
·C#对timer类的使用操作代码
·String.Split 方法使用及其代...
·如何在c#中去掉字符串中的回...
·用C#编写ActiveX控件代码实例
·C#语言实现从XML文件导出数据...
·C#如何从文本文件读取信息并...
·浅谈接口和抽象类的区别,加...
·c#子线程控制进度条的一个简...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .