用System.IO.File.GetLastWriteTime()获取光盘上某个目录的时间竟然会抛ArgumentOutOfRangeException的异常,请教大虾我该如何获取光盘上

陈硕 2002-04-12 07:18:06
而且用System.IO.File.GetLastAccessTime("E:\\SomeDir")取得的时间总是1601/1/1

用 System.IO.File.GetLastWriteTime()获取光盘上文件的最后写入时间则一点问题也没有,奇怪?

例如 System.IO.File.GetLastWriteTime("E:\\SomeDir")会抛异常,而
System.IO.File.GetLastWriteTime("E:\\SomeFile.txt")则结果正常?

...全文
213 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
DBXP 2002-04-13
  • 打赏
  • 举报
回复
嗯!看来是千年虫在作怪!
anggogo 2002-04-13
  • 打赏
  • 举报
回复
那这算不算另外一个C#的BUG呢?
tansm 2002-04-13
  • 打赏
  • 举报
回复
当然不算C#的BUG了,这还说明C#内部相当的完善,不会将错误的结果传递出来,
陈硕 2002-04-13
  • 打赏
  • 举报
回复
我发现,用Nero刻录的资料备份碟有异常,而用EasyCD刻的ISO碟(如FreeBSD安装盘)则没有问题。
crystalworm 2002-04-13
  • 打赏
  • 举报
回复
我试过了都没有你的这种情况!总共试了30张碟,包括15张刻录的。
奇怪!
sinmu 2002-04-12
  • 打赏
  • 举报
回复
我用easy cd
陈硕 2002-04-12
  • 打赏
  • 举报
回复
这个问题我已经弄好了,用Win32 APIs
FindFirstFile
FileTimeToSystemTime
SystemTimeToTzSpecificLocalTime
解决的;而且我发现GetFileAttributesEx有同样的问题,不过不表现为抛出异常,而是得到的文件最后写入时间为公元52xxx年,这在C#里不ArgumentOutOfRangeException才怪!
陈硕 2002-04-12
  • 打赏
  • 举报
回复
我一般用Nero,您用什么软件?
sinmu 2002-04-12
  • 打赏
  • 举报
回复
我就是用刻录碟的,没问题
陈硕 2002-04-12
  • 打赏
  • 举报
回复
最新结果:
有的光盘会抛异常(多数为刻录盘);
另一些则不会(如程序员大本营)。
非常奇怪。
sinmu 2002-04-12
  • 打赏
  • 举报
回复
添加一个Button,click事件代码如下

private void button1_Click(object sender, System.EventArgs e)
{
System.DateTime time= new DateTime();
time = System.IO.Directory.GetLastWriteTime("H:\\msdn");
MessageBox.Show(time.ToString());
}

我试过可以的,在光盘
陈硕 2002-04-12
  • 打赏
  • 举报
回复
System.IO.Directory.GetLastWriteTime("E:\\SomeDir"))一样抛异常,怪事。
sinmu 2002-04-12
  • 打赏
  • 举报
回复
有个System.IO.Directory你不用,偏偏要用File去操作目录

111,098

社区成员

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

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

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