2015-02-11 3 views
0

Я только что придумал эту проблему, у нас есть библиотека, которая использует Reflection для управления файлами Excel. Когда пользователь пытается сохранить файл с именем . в имени файла (например: 01.02.xls), он не будет содержать .xls в сохраненном файле (результат: 01.02).Как разрешить '.' в имени файла Excel, когда «сохранить как» с использованием позднего связывания?

workbook.GetType().InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, workbook, new Object[] { filepath.Remove(filepath.LastIndexOf(".")), 56 });

Есть вариант, который позволяет . в имени файла?

+1

Попробуйте использовать 'Path.Combine (filepath,". Xls ")' –

ответ

0

Почему удалить .xls из вашей FilePath с

filepath.Remove(filepath.LastIndexOf(".")) 

Я просто проверял это сам, если я использую только filepath как в

workbook.GetType().InvokeMember("SaveAs", BindingFlags.InvokeMethod, 
null, workbook, new Object[] { filepath, 56 }); 

это работает для меня

+0

Спасибо @ReinerSchaack Я думал то же самое в какой-то момент, но я считаю, что есть причина для этого (может быть, и не очень хорошая), есть так много приложений, которые используют это библиотеки, которые мне сначала нужно попробовать проверить на всех. – user3223834

+0

Хорошо, я считаю, что если кто-то напишет имя файла с расширением, отличным от .xls (например, .xslx), у него будет проблема совместимости. Но это можно обработать, поэтому я сделаю то, что вы предложили. Спасибо, @Rainer – user3223834