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

Анализатор обнаружил странный аргумент, переданный в метод в качестве пути к файлу\. Возможно, он был перепутан местами с другим аргументом этого метода\.

Рассмотрим пример:

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

Приведённый выше метод 'AppendText' предназначен для добавления строки 'fileContent' в файл\. В переменную 'filePath' записывается путь к файлу из 'file\.FullName'\. После этого 'filePath' и 'fileContent' используются в качестве аргументов метода 'File\.AppendAllText', выполняющего добавление текста в файл\. В качестве первого аргумента этот метод принимает путь к файлу, а в качестве второго – строку для записи\. Однако в приведённом выше примере эти два аргумента перепутаны местами\. Результат использования такого метода зависит от содержимого 'fileContent':

1. В случае если 'fileContent' не подходит под формат файлового пути, будет выброшено исключение 'System\.IOException';
1. В обратном случае будет создан новый файл и в него записано значение 'filePath'\.

Для решения этой проблемы нужно переставить аргументы метода 'File\.AppendAllText' в правильном порядке:

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