예제 #1
0
 protected override void ExecuteInternal(Dictionary<string, string> args)
 {
     string srcFile = GetArg(args, CommonArgs.SRC_FILE);
     string destDir = GetArg(args, CommonArgs.DEST_DIR);
     SplitFileTask task = new SplitFileTask(new FileInfo(srcFile), new DirectoryInfo(destDir))
     {
         PreserveTextLines = ContainsArg(args, PRESERVE_TEXT_LINES)
     };
     task.Execute();
 }
예제 #2
0
        private void btn_Split_Start_Click(object sender, EventArgs e)
        {
            Split_SetSubmitButtonStatus(false);

            // Get the destination folder path
            string destFolder = string.IsNullOrWhiteSpace(txt_Split_DestFolder.Text) ?
                Path.Combine(Path.GetDirectoryName(txt_Split_SrcFile.Text), Path.GetFileNameWithoutExtension(txt_Split_SrcFile.Text) + "_split")
                : txt_Split_DestFolder.Text;

            // Create the task
            var task = new SplitFileTask(new FileInfo(txt_Split_SrcFile.Text), new DirectoryInfo(destFolder))
            {
                PreserveTextLines = chk_Split_PreserveTextLines.Checked
            };
            if (!string.IsNullOrWhiteSpace(txt_Split_ExtOverride.Text))
            {
                task.FileExtension = txt_Split_ExtOverride.Text;
            }
            if (num_Split_MaxBytes.Value > 0)
            {
                task.MaxOutputFileByteSize = (long)num_Split_MaxBytes.Value;
            }
            task.ExecutionCompleted += (result) =>
            {
                if (result.Exception != null)
                {
                    MessageBox.Show(result.Exception.Message, "Error splitting file", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (chk_Copy_CloseOnSuccess.Checked)
                {
                    Application.Exit();
                }

                Split_SetSubmitButtonStatus(true);
                MessageBox.Show("Success");
            };
            task.ExecuteAsync();
        }