Skip to content

Commit

Permalink
Removed sourceFullPath from Unix FileSystem.MoveDirectory thrown exce…
Browse files Browse the repository at this point in the history
…ption
  • Loading branch information
steveberdy committed Jul 14, 2021
1 parent 80cbbe2 commit b88008d
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -288,7 +288,7 @@ public static void Move(string sourceDirName, string destDirName)
if (!FileSystem.DirectoryExists(fullsourceDirName) && !FileSystem.FileExists(fullsourceDirName))
throw new DirectoryNotFoundException(SR.Format(SR.IO_PathNotFound_Path, fullsourceDirName));

if (!sameDirectoryDifferentCase // This check is to allowing renaming of directories
if (!sameDirectoryDifferentCase // This check is to allow renaming of directories
&& FileSystem.DirectoryExists(fulldestDirName))
throw new IOException(SR.Format(SR.IO_AlreadyExists_Name, fulldestDirName));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ public static void MoveDirectory(string sourceFullPath, string destFullPath)
// On Windows we end up with ERROR_INVALID_NAME, which is
// "The filename, directory name, or volume label syntax is incorrect."
//
// This surfaces as a IOException, if we let it go beyond here it would
// This surfaces as an IOException, if we let it go beyond here it would
// give DirectoryNotFound.

if (Path.EndsInDirectorySeparator(sourceFullPath))
Expand All @@ -405,7 +405,7 @@ public static void MoveDirectory(string sourceFullPath, string destFullPath)
case Interop.Error.EACCES: // match Win32 exception
throw new IOException(SR.Format(SR.UnauthorizedAccess_IODenied_Path, sourceFullPath), errorInfo.RawErrno);
default:
throw Interop.GetExceptionForIoErrno(errorInfo, sourceFullPath, isDirectory: true);
throw Interop.GetExceptionForIoErrno(errorInfo, isDirectory: true);
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,17 +123,18 @@ public static void MoveDirectory(string sourceFullPath, string destFullPath)
{
int errorCode = Marshal.GetLastWin32Error();

if (errorCode == Interop.Errors.ERROR_FILE_NOT_FOUND)
throw Win32Marshal.GetExceptionForWin32Error(Interop.Errors.ERROR_PATH_NOT_FOUND, sourceFullPath);

if (errorCode == Interop.Errors.ERROR_ALREADY_EXISTS)
throw Win32Marshal.GetExceptionForWin32Error(Interop.Errors.ERROR_ALREADY_EXISTS, destFullPath);

// This check was originally put in for Win9x (unfortunately without special casing it to be for Win9x only). We can't change the NT codepath now for backcomp reasons.
if (errorCode == Interop.Errors.ERROR_ACCESS_DENIED) // WinNT throws IOException. This check is for Win9x. We can't change it for backcomp.
throw new IOException(SR.Format(SR.UnauthorizedAccess_IODenied_Path, sourceFullPath), Win32Marshal.MakeHRFromErrorCode(errorCode));

throw Win32Marshal.GetExceptionForWin32Error(errorCode);
switch (errorCode)
{
case Interop.Errors.ERROR_FILE_NOT_FOUND:
throw Win32Marshal.GetExceptionForWin32Error(Interop.Errors.ERROR_PATH_NOT_FOUND, sourceFullPath);
case Interop.Errors.ERROR_ALREADY_EXISTS:
throw Win32Marshal.GetExceptionForWin32Error(Interop.Errors.ERROR_ALREADY_EXISTS, destFullPath);
// This check was originally put in for Win9x (unfortunately without special casing it to be for Win9x only). We can't change the NT codepath now for backcomp reasons.
case Interop.Errors.ERROR_ACCESS_DENIED: // WinNT throws IOException. This check is for Win9x. We can't change it for backcomp.
throw new IOException(SR.Format(SR.UnauthorizedAccess_IODenied_Path, sourceFullPath), Win32Marshal.MakeHRFromErrorCode(errorCode));
default:
throw Win32Marshal.GetExceptionForWin32Error(errorCode);
}
}
}

Expand Down

0 comments on commit b88008d

Please sign in to comment.