Удивительно, но этот код компилируется и запускается, но результат не тот, который вы, вероятно, хотели.
В этом коде есть пара ошибок:
1.Вы не можете добавлять строки таким образом, чтобы создать путь, путь должен быть создан с символом '/' между каталогами. это допустимый путь:
string path = @"C:\Users\username\Desktop\Games";
это не так:
string path = @"C:UsersusernameDesktopGames";
вы можете исправить это с помощью функции Path.Combine следующим образом:
docfile_path = Path.Combine(File_path , "test" , date);
убедитесь в этом для всех строк пути (включая File_path, значение которого не указано в приведенном выше коде).
2. вам следует использовать
Document doc = app.Documents.Add();
для создания нового документа Word а не
Document doc = new Document();
3.В качестве строковой даты следует использовать другой формат, DateTime.ToShortDateString () делит дату с символом '/', который создает новые папки. попробуйте использовать:
string date = DateTime.Today.ToString("dd.MM.yyyy");
4.Я не вижу причин для строки
doc = app.Documents.Open(filename);
Вы пытаетесь открыть файл, который вы намереваетесь создать?
вот код, который я использовал:
string File_path = @"C:\Users\yakir\Desktop";
string docfile_path;
string filename;
string time = DateTime.Now.ToString("HH.mm.ss");
string date = DateTime.Today.ToString("dd.MM.yyyy");
docfile_path = Path.Combine(File_path , "test" , date);
Directory.CreateDirectory(docfile_path);
filename = Path.Combine(docfile_path, "worddoc" + "-" + ".docx");
Application app = new Application();
Document doc = app.Documents.Add();
Paragraph oPara1;
oPara1 = doc.Content.Paragraphs.Add();
oPara1.Range.Text = "Test Result";
oPara1.Range.Font.Bold = 1;
oPara1.Format.SpaceAfter = 24;
oPara1.Range.InsertParagraphAfter();
oPara1.Range.InsertParagraphAfter();
Paragraph oPara2;
oPara2 = doc.Content.Paragraphs.Add();
oPara2.Range.Text = "Test Name";
oPara2.Range.Font.Bold = 1;
oPara2.Format.SpaceAfter = 24;
oPara2.Range.InsertParagraphAfter();
doc.SaveAs2(filename);
doc.Close();
doc = null;
app.Quit();
app = null;
}