日期:2014-05-17  浏览次数:20964 次

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&nb