用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")则结果正常?

...全文
157 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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去操作目录
  • 打赏
  • 举报
回复
相关推荐
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2002-04-12 07:18
社区公告

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