Перебрать каталог и добавить в файл - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь выбрать путь, затем я хочу прочитать каталоги.В каждом каталоге есть несколько файлов Word, я хочу открыть каждый файл Word, скопировать его содержимое и вставить его в новый документ Word.

Пример, если в каталоге 6 файлов Word, я хочу открытьновый документ Word, затем откройте первый документ в каталоге, скопируйте его содержимое и вставьте его в новый документ и выполняйте циклы до тех пор, пока все документы не будут прочитаны.

Пока я могу перебирать документы, но только что созданный файл слов получает только последний открытый документ.Ниже мой код.

namespace combiner
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // For optional parameters create a missing object    
            object missing = System.Reflection.Missing.Value;

            // Create an object of application class    
            Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.Application();

            // add a document in the Application
            Document adoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);

            // declare variables for setting the position within the document    
            object start = 0;    
            object end = 0;

            // create a range object which starts at 0    
            Range rng = adoc.Range(ref start, ref missing);       

            string path = @"C:\demo";    

            string[] files = Directory.GetDirectories(path);

            for (int i = 0; i < files.Length; i++)
            {
                string[] ora = Directory.GetFiles(files[i], "*.docx", SearchOption.AllDirectories);

                foreach (string f in ora)
                {
                    MessageBox.Show(f);
                    textBox1.Text = f.ToString();

                    // insert a file
                    rng.InsertFile(textBox1.Text, ref missing, ref missing, ref missing, ref missing);

                    // now make start to point to the end of the content of the first document
                    start = WordApp.ActiveDocument.Content.End - 1;

                    // create another range object with the new value for start
                    Range rng1 = adoc.Range(ref start, ref missing);

                    // insert the another document
                   rng1.InsertFile(textBox1.Text, ref missing, ref missing, ref missing, ref missing);

                    // now make start to point to the end of the content of the first document
                    start = WordApp.ActiveDocument.Content.End - 1;
                }

                // make the word appliction visible

                WordApp.Visible = true;
                adoc.SaveAs2(@"D:\fulltest.docx");
            }
        }
    }
}
...