Directory.Exists的效率问题

问题描述

问题描述:我在WindowsForm程序中,在OnLoad()函数中利用Directory.Exist(directPath)来读取目录中的文件.这个目录为另一机器中的映射的逻辑驱动器。当那台机器没有开机或者死机时,此时本机的逻辑驱动路径就无法访问,这时Directory.Exists()函数读取路径时,程序会非常慢,出现“假死”现象,好长时间没有反应。待解决问题:如何解决因为逻辑驱动器目录不存在而造成的因调用Exists函数出现的程序“假死”问题呢???

解决方案

解决方案二:
放到另外一个线程里去执行不要放到UI线程里
解决方案三:
先ping一下,看看能否连上System.Net.NetworkInformation
解决方案四:
还有别的方法吗?有没有专门的类型库可以简单的解决此问题?
解决方案五:
给个记时器,最多10秒无响应,退出
解决方案六:
简单的没有。只能自己去识别这种情况。如果为网络影射的驱动器,最好先确认网络是否通畅(2楼兄弟的解答).windows系统影射网络驱动器时,始终需要查找网络是否存在,工作是否正常等等。简单的测试就是用windowexplorer代开一个不存在的网络地址。你会发现,慢的出奇。
解决方案七:
用backgroundWorker进行异步测试吧,测试成功后置一个标志,并在状态栏显示点按钮时检测标志,未成功给提示信息,让用户等待或者说连不上远程连接服务器测试都这么干的
解决方案八:
先检测网络,在你程序上搞计时或者计数
解决方案九:
有问题请先GOOGLE,BAIDU

时间: 2024-08-30 22:53:17

Directory.Exists的效率问题的相关文章

asp.net Directory.Exists判断文件夹是否存在代码

在上传文件时经常要判断文件夹是否存在,如果存在就上传文件,否则新建文件夹再上传文件 语法大概这样 string dir="d:xxxyyy" if (system.io.directory.exists(dir)) {   // 存在 } else {   // 不存在 } 下面来看一下详细代码 判断语句为 if (system.io.directory.exists(server.mappath("file")) == false)//如果不存在就创建file文件

C#中Directory类目录操作(复制\重命名\创建\删除)

Directory 类用于典型操作,如复制.移动.重命名.创建和删除目录.也可将 Directory 类用于获取和设置与目录的创建.访问及写入操作相关的 DateTime 信息. 由于所有的 Directory 方法都是静态的,所以如果只想执行一个操作,那么使用 Directory 方法的效率比使用相应的 DirectoryInfo 实例方法可能更高.大多数 Directory 方法要求当前操作的目录的路径. 例  代码如下 复制代码 //1.---------文件夹创建.移动.删除------

利用System.IO中的Directory类对目录进行基本操作

//创建目录 Directory.CreateDirectory("c:\\Dir_name"); //删除目录 Directory.Delete("c:\\Dir_name"); //或 Directory.Delete("c:\\Dir_name",false); //当待删除目录下有文件或子目录时,抛出异常,除非第二个参数为true //判断一个目录是否存在 Response.Write(Directory.Exists("c:\

Directory类创建文件夹、删除文件夹。

创建   名字空间 System.IOusing System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.HtmlCon

C# Directory和Directory Info的应用及文件读写

一,Directory 和Directory Info的应用 在Asp,net的实际应用中,上传文件的实现过程中要用到有关目录的操作,来现实文件的上传工作.下面分析下用C#完成文件上传过程的核心代码,其中控件FileUpload用来获取文件/ -------------代码段---------- string filename = FileUploadFileName;//获取上传文件的名字 string filetype = FileUploadFileName.Substring(filen

sql查询语句的优化,exists与in的更换

自己开发的小站,页面访问查询的速度一直不让人满意,刚好今天有时间,就决定对它优化一下. 因为在本地开时发,查询的速度是相当快的,一开始就以为是mysql版本的问题,本地是MariaDB 5.5,服务器上是mysql 5.1, 将服务器上的数据弄到本地导了一份,居然发现一样变慢了,平均查询一个文章要1-2秒,列表超过2秒以上,才几千的数据这么慢肯定是哪里出了问题. 一点一点的定位打印日志,最后发现,居然是一条使用了exists的sql语句,查询就用了2秒,也就是说时间都花在这个上了,其它的基本都可

未解决Unable to use slave's temporary directory /tmp - Can't create/write to file '/tmp/SQL_LOAD-' (Err

  Login / Register Developer Zone Bugs Home Report a bug Statistics Advanced search Saved searches Tags Bug #62055 Race condition in check_temp_dir() from multiple mysqld instances Submitted: 2 Aug 2011 10:24 Modified: 19 Dec 2011 1:29 Reporter: Yosh

MySQL关于exists的一个bug_Mysql

今天碰到一个关于exists很奇怪的问题 第一个语句如下: SELECT count(1) FROM APPLY t WHERE EXISTS ( SELECT r.APPLY_ID FROM RECORD r WHERE t.APPLY_ID = r.APPLY_ID ); 产生的结果是:89584 第二个语句如下: SELECT count(1) FROM APPLY t WHERE EXISTS ( SELECT max(r.FINISH_TIME) FROM RECORD r WHERE

mySQL中in查询与exists查询的区别小结_Mysql

一.关于exists查询 explain select * from vendor where EXISTS(select * from area where area_code = vendor_prov_code ) limit 10 以上是一个典型的exists查询的sql语句. 它的作用方式是这样的:每次从vendor表中查询出一条数据,然后将这条数据中的vendor_prov_code值传递到exists查询中进行执行,也就是进行子查询的执行. 如果子查询查到的数据就返回布尔值true