首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#用system.io.directory.getfiles查找文件出错的有关问题

2013-02-24 
C#用system.io.directory.getfiles查找文件出错的问题偶然会发生The path is not of a legal form”,平率

C#用system.io.directory.getfiles查找文件出错的问题
偶然会发生"The path is not of a legal form”,平率还相当高,不知道什么,好好的路径,怎么会不合法呢?

程序的一个线程会监视一个目录,包括所有子目录,找个一个最新的文件,然后进行相关操作,如果发现这个最新的文件持续几分钟没有更新,就重新搜索一遍那个目录,再找一个最新的文件进行操作,如此循环。
搜索文件的函数如下:


        //读取当面目录中最新的MDB文件
        private string getlastWriteMdbfile(string path)
        {
            string rfn = "";
            try
            {
                DateTime lstdt = new DateTime();
                foreach (string f in System.IO.Directory.GetFiles(path, "*.mdb", System.IO.SearchOption.AllDirectories))
                {
                    System.IO.FileInfo fi = new System.IO.FileInfo(f);
                    if (rfn == "")
                    {
                        lstdt = fi.LastWriteTime;
                        rfn = f;
                    }
                    else
                    {
                        if (fi.LastWriteTime > lstdt)
                        {
                            lstdt = fi.LastWriteTime;
                            rfn = f;
                        }
                    }
                }
                addlog ("获得文件名---"+rfn);
            }
            catch (Exception ex)
            {
                addlog("发生错误---" + ex.Message);


                //错误日志中经常出现 “发生错误---The path is not of a legal form.”
            }
            return rfn;
        }


[解决办法]
  foreach (string f in System.IO.Directory.GetFiles(path, "*.mdb", System.IO.SearchOption.AllDirectories))  

System.IO.Directory.GetFiles(path, "*.mdb", System.IO.SearchOption.AllDirectories)这个放在外面,不要写在foreach里面试试             

热点排行