Это общее ограничение Excel, которое не относится конкретно к COM, вы получите точно такое же сообщение, если попытаетесь сохранить файл из Excel, который содержит квадратные скобки в имени. Я предполагаю, что причина в том, что в Excel вы можете ссылаться на другой файл рабочей книги в формуле, используя что-то вроде этого:
='E:\Temp\[Test.xlsx]Sheet1'!$A$1
Я не верю, что есть какой-либо способ экранировать символы в скобках, поэтому включение в него сделает это невозможно сослаться на это из другой книги. Я бы посоветовал вместо того, чтобы пытаться обойти это, придерживайтесь допустимых скобок, но если кто-то настаивает на том, чтобы файлы назывались таким образом, вы можете просто сделать что-то вроде следующего:
public string TheValue
{
get { return $"{result}{Path.GetFileNameWithoutExtension(f8.filePath)} ({DateTime.Now.ToString("ddMyyyyHHmmss")}).xlsx"; }
}
File.Move(TheValue, TheValue.Replace("(","[").Replace(")","]"));
Это при условии, что нет никакой возможности, чтобы имя файла уже содержало круглые скобки, если это возможно, вы можете просто сначала сохранить его в уникальное имя файла в Excel, а затем использовать существующий TheValue
в качестве конечной цели для File.Move
.