void bgWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            FileListArgument arg = e.Argument as FileListArgument;

            DirectoryInfo folder = new DirectoryInfo(arg.FolderPath);

            if (folder.Exists)
            {
                XmlDocument xmlDoc = new XmlDocument();

                XmlDeclaration declaration = xmlDoc.CreateXmlDeclaration("1.0", "utf-8", "yes");
                xmlDoc.AppendChild(declaration);

                XmlNode root = xmlDoc.CreateElement(defaultRootNodeName);
                xmlDoc.AppendChild(root);

                XmlAttribute folderPath = xmlDoc.CreateAttribute("FolderPath");
                root.Attributes.Append(folderPath);
                folderPath.Value = folder.FullName;

                FillFiles(root, folder, arg.FolderPath);

                xmlDoc.Save(arg.FilePath);
            }
        }
        private void CreateNewListFile(string folderPath, string targetFilePath)
        {
            this.defaultFilePath   = targetFilePath;
            this.defaultFolderPath = folderPath;

            bgWorker = new BackgroundWorker();
            bgWorker.WorkerReportsProgress = true;

            bgWorker.DoWork             += new DoWorkEventHandler(bgWorker_DoWork);
            bgWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgWorker_RunWorkerCompleted);

            tSProgressBar.Style = ProgressBarStyle.Marquee;

            FileListArgument arg = new FileListArgument(folderPath, targetFilePath);

            bgWorker.RunWorkerAsync(arg);
        }