private void button1_Click(object sender, EventArgs e) { newUnload(); return; button1.Enabled = false; button2.Enabled = true; label1.Text = "Получение списка документов..."; label1.Refresh(); this.Cursor = Cursors.WaitCursor; string Path = ""; try { Path = _proc.EditGetConf(ConnectionSettings.GetIdProgram(), "", "").Select("id_value = \'psss\'")[0]["value"].ToString(); } catch { } if (Path == null || Path == "") { Path = "\\\\192.168.5.31\\Scans"; _proc.EditGetConf(ConnectionSettings.GetIdProgram(), "psss", Path); } if (!Directory.Exists(Path)) { MessageBox.Show(" Введенный путь хранения\nотсканированных документов\n недоступен для чтения.\n Выберите другой путь.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); var fd = new FolderBrowser2 { }; if (fd.ShowDialog(this) == DialogResult.OK) { if (fd.DirectoryPath.Trim().Length == 0) { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } Path = fd.DirectoryPath.Trim(); } else { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } } else { DirectoryInfo di = new DirectoryInfo(Path); DirectorySecurity ds = di.GetAccessControl(); var rules = ds.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier)); foreach (FileSystemAccessRule rule in rules) { if (rule.FileSystemRights == FileSystemRights.Read && rule.AccessControlType == AccessControlType.Deny) { MessageBox.Show(" Введенный путь хранения\nотсканированных документов\n недоступен для чтения.\n Выберите другой путь.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); var fd = new FolderBrowser2 { }; if (fd.ShowDialog(this) == DialogResult.OK) { if (fd.DirectoryPath.Trim().Length == 0) { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } Path = fd.DirectoryPath.Trim(); } else { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } } } } DataTable dtdoc = _proc.GetDocumens(); //if (dtdoc == null || dtdoc.Rows.Count == 0) //{ // MessageBox.Show("Нет данных для выгрузки", "Выгрузка", MessageBoxButtons.OK, MessageBoxIcon.Warning); // label1.Text = ""; // label1.Refresh(); // label2.Text = ""; // label2.Refresh(); // return; //} int i = 0; DataTable dtTmp; if (dtdoc != null && dtdoc.Rows.Count != 0) { foreach (DataRow r in dtdoc.Rows) { if (!stop) { dtTmp = _proc.GetDocumentsBody((int)r["id"]); if (dtTmp == null || dtTmp.Rows.Count == 0 || dtTmp.Rows[0]["Scan"] == DBNull.Value) { continue; } if (!Directory.Exists(Path + "\\" + r["id_Doc"].ToString())) { Directory.CreateDirectory(Path + "\\" + r["id_Doc"].ToString()); } try { label1.Text = "Запись файла " + r["cName"].ToString() + r["Extension"].ToString(); label1.Refresh(); File.WriteAllBytes(Path + "\\" + r["id_Doc"].ToString() + "\\" + r["cName"].ToString() + r["Extension"].ToString(), (byte[])dtTmp.Rows[0]["Scan"]); _proc.SetDocument((int)r["id"], Path + "\\" + r["id_Doc"].ToString()); i++; label2.Text = "Файлов записано:" + i.ToString() + ". Файлов осталось:" + (dtdoc.Rows.Count - i).ToString(); label2.Refresh(); } catch (Exception ex) { MessageBox.Show("Не удалось сохранить файл " + Path + "\\" + r["cName"].ToString() + r["Extension"].ToString() + "/nТекст ошибки: " + ex.Message); } } else { button1.Enabled = stop = true; button2.Enabled = false; return; } } } else { MessageBox.Show("Невыгруженные документы не найдены."); } this.Cursor = Cursors.Arrow; MessageBox.Show("Выгрузка окончена!"); label1.Text = "Выгрузка завершена."; label1.Refresh(); label2.Text = ""; label2.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; }
private void newUnload() { Logging.StartFirstLevel(821); Logging.Comment("Начало выгрузки файлов"); button1.Enabled = false; button2.Enabled = true; label1.Text = "Получение пути сохранения..."; label1.Refresh(); this.Cursor = Cursors.WaitCursor; try { Path = _proc.EditGetConf(ConnectionSettings.GetIdProgram(), "", "").Select("id_value = \'psss\'")[0]["value"].ToString(); } catch { } if (Path == null || Path == "") { Path = "\\\\192.168.5.31\\Scans"; _proc.EditGetConf(ConnectionSettings.GetIdProgram(), "psss", Path); } if (!Directory.Exists(Path)) { MessageBox.Show(" Введенный путь хранения\nотсканированных документов\n недоступен для чтения.\n Выберите другой путь.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); var fd = new FolderBrowser2 { }; if (fd.ShowDialog(this) == DialogResult.OK) { if (fd.DirectoryPath.Trim().Length == 0) { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } Path = fd.DirectoryPath.Trim(); } else { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } } else { DirectoryInfo di = new DirectoryInfo(Path); DirectorySecurity ds = di.GetAccessControl(); var rules = ds.GetAccessRules(true, true, typeof(System.Security.Principal.SecurityIdentifier)); foreach (FileSystemAccessRule rule in rules) { if (rule.FileSystemRights == FileSystemRights.Read && rule.AccessControlType == AccessControlType.Deny) { MessageBox.Show(" Введенный путь хранения\nотсканированных документов\n недоступен для чтения.\n Выберите другой путь.", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); var fd = new FolderBrowser2 { }; if (fd.ShowDialog(this) == DialogResult.OK) { if (fd.DirectoryPath.Trim().Length == 0) { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } Path = fd.DirectoryPath.Trim(); } else { this.Cursor = Cursors.Arrow; label1.Text = "Не выбран путь сохранения. Выгрузка остановлена."; label1.Refresh(); button1.Enabled = stop = true; button2.Enabled = false; return; } } } } if (!backgroundWorker1.IsBusy) { backgroundWorker1.RunWorkerAsync(); } }