• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#快速判断能否正常访问共享文件

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

1.在访问共享路径的时候,如果没有事先连接过,直接在代码中访问会异常,而且这个异常的时间会特别的长,我们试一下:

using System;
using System.Diagnostics;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            const string path = @"\\192.168.0.10\验证文件\验证.txt";
            var timeStart = DateTime.Now;
            try
            {
                Process.Start(path);
            }
            catch (Exception ex)
            {
                var time = DateTime.Now - timeStart;
                Console.WriteLine(ex + "\r\n总耗时:" + time.Seconds + "");
            }
            Console.ReadKey();
        }
    }
}

看一下第一次执行的结果:

 总耗时22,这显然是不能忍受的。(第一次会比较慢,再访问的时候会比较快。

 

2.那么如何规避这种问题,快速判断共享文件能否正常访问呢?

我们可以通过cmd.exe下执行net use \\192.168.0.10\验证文件 来快速判断,代码实现如下:

using System;
using System.Diagnostics;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            const string path = @"\\192.168.0.10\验证文件";
            string message;
            var timeStart = DateTime.Now;
            using (var process = new Process
            {
                StartInfo =
                {
                    FileName = "cmd.exe",
                    UseShellExecute = false,
                    RedirectStandardInput = true,
                    RedirectStandardOutput = true,
                    CreateNoWindow = true,
                    RedirectStandardError = true
                }
            })
            {
                process.Start();
                process.StandardInput.AutoFlush = true;
                process.StandardInput.WriteLine(@"net use " + path);
                process.StandardInput.WriteLine("exit");
                errorMessage = process.StandardError.ReadToEnd();
                process.WaitForExit();
                if (string.IsNullOrEmpty(errorMessage))
                {
                    var timespan = DateTime.Now - timeStart;
                    Console.WriteLine(@"权限不足:" + path + "\r\n" + message +
                    "\r\n总耗时:" + timespan.Milliseconds + "毫秒!");
                }
            }
            Console.ReadKey();
        }
    }
}

再来看一下运行结果:

 耗时327毫秒

很明显速度快多了! 

当然这时候你也可以输入用户名密码来建立连接:

具体cmd命令如下:

net use \\192.168.0.10\验证文件 访问共享的密码 /user:访问共享的账号

(这里有一个前提:网络共享的路径必须真实有效,如果“找不到网络路径”,第一次使用net use命令也需要较长时间。)


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap