Problem z otwarciem pliku .doc w aplikacji WinForm

Problem z otwarciem pliku .doc w aplikacji WinForm
R8
  • Rejestracja:około 6 lat
  • Ostatnio:5 miesięcy
  • Postów:39
0

Dzień dobry,
mam problem z otwarciem pliku Word`a w aplikacji. Apka się nie kompiluje, jest błąd

System.Runtime.InteropServices.COMException: 'Niestety, nie można odnaleźć pliku. Czy plik nie został przeniesiony lub usunięty albo czy nie zmieniono jego nazwy?
(C:\WINDOWS\system32\Dokument.doc)'

Plik Dokument.doc jest w folderze z projektem, więc nie wiem skąd pomysł, żeby szukać do w system32. Co ciekawe, kiedy uruchomię ponownie komputer, na "dzień dobry" otwiera mi się pusty, nowy plik Word`a, od razu po zalogowaniu i wejściu na pulpit. Co może być przyczyną takiego działania aplikacji? Kod:

Kopiuj
using System;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;

namespace Generator_Dokumentow
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
            Word._Application wApp = new Word.Application();
            Word.Documents wDocs = wApp.Documents;
            Word._Document wDoc = wDocs.Open("Dokument.doc", ReadOnly: false);
            wDoc.Activate();

            Word.Bookmarks wBookmarks = wDoc.Bookmarks;
            Word.Bookmark wBookmark = wBookmarks["NrKarty"];
            Word.Range wRange = wBookmark.Range;
            wRange.Text = textBox1.Text;
        }

        private void Form2_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
0

Podawaj pełną ścieżkę do pliku.

Prawidłowo powinieneś raczej otworzyć SaveFileDialog i pozwolić użytkownikowi wybrać docelową ścieżkę i nazwę pliku.

edytowany 1x, ostatnio: Azarien
R8
  • Rejestracja:około 6 lat
  • Ostatnio:5 miesięcy
  • Postów:39
0

Niestety to nie pomaga. Próbowałem

R8
  • Rejestracja:około 6 lat
  • Ostatnio:5 miesięcy
  • Postów:39
0

To ma być aplikacja, w której w pliku Word jest szablon, do którego wpisywane są dane w odpowiednie pola, stąd musi być on od razu załadowany w trybie do modyfikacji i zapisu, żeby wpisywało się do niego to, co użytkownik wypełni w aplikacji.

R8
  • Rejestracja:około 6 lat
  • Ostatnio:5 miesięcy
  • Postów:39
0

Zmieniłem kod i teraz działa

Kopiuj
string path = Directory.GetCurrentDirectory();
            Directory.SetCurrentDirectory(path);
            string toOpen = path + "/Dokument.doc";
            Console.WriteLine(path);
            Word._Application wApp = new Word.Application();
            Word.Documents wDocs = wApp.Documents;
            Word._Document wDoc = wDocs.Open(toOpen, ReadOnly: false);

niemniej zastanawia mnie ciągle, czemu po restarcie komputera otwierał nowy plik Word`a, zaś nie w trakcie działania apki. Jeśli ktoś ma jakiś pomysł na wyjaśnienie tego zjawiska to chętnie się poczytam, natomiast ogólnie temat do zamknięcia, bo główny problem rozwiązany.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.