public sealed class FileInfo : FileSystemInfo {\r
\r
- private bool exists = false;
+ private bool exists;
public FileInfo (string path) {\r
CheckPath (path);\r
\r
OriginalPath = path;\r
FullPath = Path.GetFullPath (path);
- exists = File.Exists (path);
+ }\r
+ \r
+ internal override void InternalRefresh ()\r
+ {\r
+ exists = File.Exists (FullPath);\r
}\r
\r
+\r
// public properties\r
\r
public override bool Exists {\r
}
}
- public void MoveTo (string dest) {\r
- File.Move (FullPath, dest);\r
- }\r
-\r
+ public void MoveTo (string dest) {
+ if (dest == null)
+ throw new ArgumentNullException ();
+ MonoIOError error;
+ if (MonoIO.Exists (dest, out error) ||
+ MonoIO.ExistsDirectory (dest, out error))
+ throw new IOException ();
+ File.Move (FullPath, dest);
+ this.FullPath = Path.GetFullPath (dest);
+ }
+
public FileInfo CopyTo (string path) {\r
return CopyTo (path, false);\r
}\r