>
>
>
V3185. An argument containing a file pa…


V3185. An argument containing a file path could be mixed up with another argument. The other function parameter expects a file path instead.

The analyzer has detected a strange argument passed to the method as a file path. The argument may have been mixed up with another argument of this method.

Example:

void AppendText(FileInfo file, string fileContent)
{
  var filePath = file.FullName;
  File.AppendAllText(fileContent, filePath);
}

The 'AppendText' method above is used to add the 'fileContent' string to a file. The file path from 'file.FullName' is written to the 'filePath' variable. After that, 'filePath' and 'fileContent' are used as arguments for the 'File.AppendAllText' method that adds text to the file. This method takes the path to the file as the first argument, and as the second argument – a string to be written. However, in the example above, these two arguments are mixed up. The result of using this method depends on the contents of 'fileContent':

  • If 'fileContent' does not fit the file path format, the 'System.IOException' exception is thrown;
  • Otherwise, a new file is created and the value from the 'filePath' variable is written to it.

To solve this problem, you need to rearrange the arguments of the 'File.AppendAllText' method in the correct order:

void AppendText(FileInfo file, string fileContent)
{
  var filePath = file.FullName;
  File.AppendAllText(filePath, fileContent);
}

This diagnostic is classified as: