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

llsus 2013-01-25 10:04:23
偶然会发生"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;
}
...全文
495 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
llsus 2013-01-31
  • 打赏
  • 举报
回复
引用 8 楼 strife 的回复:
foreach (string f in System.IO.Directory.GetFiles(path, "*.mdb", System.IO.SearchOption.AllDirectories)) System.IO.Directory.GetFiles(path, "*.mdb", System.IO.SearchOption.AllDirectories)这个放在外面……
我这么试过了,没什么效果,我现在让工厂把旧文件移走了,文件少了,就没问题了,估计是函数本身的问题。
strife013 2013-01-25
  • 打赏
  • 举报
回复
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里面试试
llsus 2013-01-25
  • 打赏
  • 举报
回复
Path是1级目录,里面的子目录可能三四级,最深应该不超过5级
ArmStronger 2013-01-25
  • 打赏
  • 举报
回复
难道是路径太长了?
llsus 2013-01-25
  • 打赏
  • 举报
回复
引用 2 楼 yxj19871219 的回复:
if (!string.IsNullOrWhitespace(f)) { System.IO.FileInfo fi = new System.IO.FileInfo(f); }
问题不在f上,是Directory.GetFiles就出错了,进不了循环
宝_爸 2013-01-25
  • 打赏
  • 举报
回复
烟灰洒落键盘 2013-01-25
  • 打赏
  • 举报
回复
if (!string.IsNullOrWhitespace(f))
{
   System.IO.FileInfo fi = new System.IO.FileInfo(f);
}
llsus 2013-01-25
  • 打赏
  • 举报
回复
上面的程序中,private string getlastWriteMdbfile(string path) 参数Path是个固定值。

110,557

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧