private void btn_Split_Click(object sender, EventArgs e) { if (!RequiredVerification()) { return; } if (ShowMessage.ShowConfirm(ChangeLanguage.getLanguage("ConfirmExecution"), showTitle) == DialogResult.OK) { FileSplitModel fileSplitModel = new FileSplitModel(); fileSplitModel.filePath = txt_SelectFile.Text.Trim(); fileSplitModel.fileOutPath = txt_Src.Text.Trim(); fileSplitModel.fileName = txt_FileName.Text.Trim(); fileSplitModel.fileExtension = fileSplitModel.filePath.Substring(fileSplitModel.filePath.LastIndexOf('.')); ExcelSplitModel excelModel = new ExcelSplitModel(); if (rbtn_AllWorkBook.Checked) { excelModel.splitType = 1; } else if (rbtn_FixedRows.Checked) { excelModel.splitType = 2; excelModel.sheetName = ""; excelModel.beginRow = int.Parse(txt_FixedRowsBegin.Text.Trim()); excelModel.endRow = int.Parse(txt_FixedRowsEnd.Text.Trim()); if (rbtn_FixedRowsDesignation.Checked) { ComboBoxModel model = cbBox_FixedRowsWorkSheet.SelectedItem as ComboBoxModel; if (model == null) { ShowMessage.ShowError(ChangeLanguage.getLanguage("SpecifiedWorksheetCannotBeEmpty"), showTitle); return; } excelModel.sheetName = model.text; } } fileSplitModel.fileExcel = excelModel; SplitMethodInvoker splitAllMethod = new SplitMethodInvoker(SplitSheetMethod); this.BeginInvoke(splitAllMethod, new object[] { fileSplitModel }); } }
private void btnSplit_Click(object sender, EventArgs e) { if (!RequiredVerification()) { return; } if (ShowMessage.ShowConfirm(ChangeLanguage.getLanguage("ConfirmExecution"), showTitle) == DialogResult.OK) { string filePath = txt_SelectFile.Text.Trim(); if (!File.Exists(filePath))//文件不存在 { ShowMessage.ShowError(ChangeLanguage.getLanguage("FilePathError"), showTitle); return; } //新建文件流 if (fileStream != null) { fileStream.Close(); } fileStream = new FileStream(txt_SelectFile.Text, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); //设置当前流的位置,即开始位置 fileStream.Seek(0, SeekOrigin.Begin); try { //获取文件信息 double fixSize = 0; int fileCount = 0; if (rbtn_Size.Checked)//固定文件大小 { fixSize = double.Parse(txt_FixedSize.Text); fileCount = Convert.ToInt32(txt_Total.Text); } else if (rbtn_Total.Checked)//固定分割份数 { fixSize = double.Parse(txt_Size.Text); fileCount = Convert.ToInt32(txt_FixedTotal.Text); } for (int i = 0; i < fileCount; i++) { //实例化分割文件信息 FileSplitModel splitModel = new FileSplitModel(); splitModel.fileName = txt_FileName.Text + i.ToString(); splitModel.fileExtension = ".txt"; splitModel.fileOutPath = txt_Src.Text; splitModel.fileSrc = splitModel.fileOutPath + @"\" + splitModel.fileName + splitModel.fileExtension; splitModel.fileLength = Convert.ToInt32(fixSize).ToString(); splitModel.fileStreamReadOffset = 0; if (i == fileCount - 1) { splitModel.fileIndex = -1; } else { splitModel.fileIndex = i; } SplitMethodInvoker splitMethod = new SplitMethodInvoker(SplitFileThread); this.BeginInvoke(splitMethod, new object[] { splitModel }); } } catch (Exception ex) { ShowMessage.ShowError(ex.Message, showTitle); } } }