Использование OpenFIleDialog, чтобы получить путь для документа Word в C # - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь использовать OpendFileDialog, чтобы получить путь для передачи в экземпляр приложения Word.Это мой код до сих пор.Это говорит мне: «Извините, мы не смогли найти ваш файл.Был ли он перемещен, переименован или удален?

Это мой код.Спасибо.

OpenFileDialog OpenFileDialog1 = new OpenFileDialog();

    private void button1_Click(object sender, EventArgs e)
    {
        OpenFileDialog1.Filter = @"All Files|*.*";

        if (openFile.ShowDialog() == DialogResult.OK)
        {
            string filePath = System.IO.Path.GetFullPath(OpenFileDialog1.FileName);
        }

        Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
        Microsoft.Office.Interop.Word.Document wordDoc = null;       

        object fileName = "filePath";

        object missing = System.Type.Missing;
        document = App.Documents.Open(ref fileName, ref missing, ref missing, ref missing, 
                                  ref missing, ref missing, ref missing, ref missing, 
                                  ref missing, ref missing, ref missing, ref missing,
                                  ref missing, ref missing, ref missing, ref missing);

1 Ответ

0 голосов
/ 20 мая 2019

В настоящее время вы устанавливаете fileName на "filePath" в виде строки, а не фактического пути. Вы заметите, что в своем коде вы устанавливаете переменную filePath в области действия if, которая ограничена только оператором if.

OpenFileDialog OpenFileDialog1 = new OpenFileDialog();

private void button1_Click(object sender, EventArgs e)
{
    OpenFileDialog1.Filter = @"All Files|*.*";
    object fileName = "";
    if (openFile.ShowDialog() == DialogResult.OK)
    {
        fileName = System.IO.Path.GetFullPath(OpenFileDialog1.FileName);
    }

    Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
    Microsoft.Office.Interop.Word.Document wordDoc = null;       



    object missing = System.Type.Missing;
    document = App.Documents.Open(ref fileName, ref missing, ref missing, ref missing, 
                              ref missing, ref missing, ref missing, ref missing, 
                              ref missing, ref missing, ref missing, ref missing,
                              ref missing, ref missing, ref missing, ref missing);

Вы заметите, что изменение перемещает назначение fileName перед областью действия if, а затем устанавливает значение fileName для файла из OpenFileDialog. Затем это передается методам взаимодействия. Я предлагаю установить точку останова в строке object fileName = "" и проверить присвоения переменных.

Я добавлю, что вы должны изменить свой код, чтобы убедиться, что результат вашего диалога OpenFile НЕ в порядке, тогда вы должны добавить оператор возврата или другой шаблон, чтобы убедиться, что вы не выполняете код, который завершится ошибкой, поскольку пользователь имеет отменил или закрыл диалог.

...