FileInfo.MoveTo was not moving a file from one directory to another when
the file name did not change.
Fixes #18361.
An ArgumentException when destFileName is an empty array was added,
otherwise FileInfoTest.MoveTo_DestFileName_Empty would fail. Both
Path.GetFullPath and File.Move throw similar exceptions but
MoveTo_DestFileName_Empty expects the one from File.Move so it was added
to this method.
{
if (destFileName == null)
throw new ArgumentNullException ("destFileName");
{
if (destFileName == null)
throw new ArgumentNullException ("destFileName");
- if (destFileName == Name || destFileName == FullName)
+ if (destFileName.Length == 0)
+ throw new ArgumentException ("An empty file name is not valid.", "destFileName");
+
+ var destFullPath = Path.GetFullPath (destFileName);
+ if (destFullPath == FullPath)
return;
if (!File.Exists (FullPath))
throw new FileNotFoundException ();
return;
if (!File.Exists (FullPath))
throw new FileNotFoundException ();
- File.Move (FullPath, destFileName);
- this.FullPath = Path.GetFullPath (destFileName);
+ File.Move (FullPath, destFullPath);
+ this.FullPath = destFullPath;
}
public FileInfo CopyTo (string destFileName)
}
public FileInfo CopyTo (string destFileName)