/// 조회 private void InitModel() { ItemsSelect.Clear(); ItemsFile.Clear(); //저장된 shp파일 목록 DirectoryInfo di = new DirectoryInfo(BizUtil.GetDataFolder("shape")); //foreach (FileInfo fi in di.GetFiles().Where(f=> f.Extension.Contains("shp") || f.Extension.Contains("dbf") || f.Extension.Contains("prj") || f.Extension.Contains("shx"))) foreach (FileInfo fi in di.GetFiles().Where(f => f.Extension.Contains("shp"))) { try { FileDtl dtl = new FileDtl(); dtl.DWN_NAM = fi.Name; dtl.FIL_TYP = fi.Extension.Replace(".", ""); dtl.FIL_SIZ = fi.Length.ToString(); //파일객체 ItemsSelect.Add(dtl); } catch (Exception e) { Console.WriteLine(e.Message); } } }
/// <summary> /// 물리적파일을 업로드한후, 파일테이블에 등록하고, _FIL_SEQ를 생성한다 /// </summary> /// <returns></returns> private void UploadFileList() { // 1.물리적파일 저장 if (!System.IO.Directory.Exists(dir_name)) { System.IO.Directory.CreateDirectory(dir_name); } /// Items는 추가된 파일객체만이다 foreach (FileInfo fi in ItemsFile) { //string file_name = fi.Name; //string file_path = System.IO.Path.Combine(dir_name, file_name); string file_name2 = DateTime.Now.ToString("yyyyMMddHHmmssff") + fi.Extension; //저장되는파일이름 string file_path2 = System.IO.Path.Combine(dir_name, file_name2); // 1.파일드라이브에 저장 try { fi.CopyTo(file_path2, true); } catch (Exception ex) { Messages.ShowErrMsgBox(ex.Message); } // 2.저장되는 물리적파일명 db에 기록 //파일db객체 FileDtl dtl = new FileDtl(); dtl.UPF_NAM = file_name2; dtl.DWN_NAM = fi.Name; dtl.FIL_TYP = fi.Extension.Replace(".", ""); dtl.FIL_SIZ = fi.Length.ToString(); ItemsAdd.Add(dtl); } // 2.첨부파일 등록 int _file_seq = -1; //신규마스터 if (this.FIL_SEQ != null) { try { _file_seq = Convert.ToInt16(this.FIL_SEQ); } catch (Exception) { } } // 첨부파일db 저장 ret_fil_seq = SaveFileList(_file_seq); }
public void DropRecord(List <FileInfo> filesData) { foreach (FileInfo fi in filesData) { if (!ItemsFile.Any(x => x.FullName == fi.FullName)) { //파일객체 ItemsFile.Add(fi); //파일db객체 FileDtl dtl = new FileDtl(); dtl.DWN_NAM = fi.Name; dtl.FIL_TYP = fi.Extension.Replace(".", ""); dtl.FIL_SIZ = fi.Length.ToString(); ItemsSelect.Add(dtl); } } }
/// 생성자 public ShpMngViewModel() { ItemsSelect = new ObservableCollection <FileDtl>(); ItemsFile = new ObservableCollection <FileInfo>(); // 초기로딩처리 LoadedCommand = new RelayCommand <object>(delegate(object obj) { if (obj == null) { return; } //그리드뷰인스턴스 shpMngView = obj as ShpMngView; // 초기조회 InitModel(); }); //shp파일 임포트 ImportCmd = new RelayCommand <object>(delegate(object obj) { //필수체크 if (!BizUtil.ValidReq(shpMngView)) { return; } OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = true; openFileDialog.Filter = "Shape files |*.shp;*.shx;*.dbf;*.prj"; openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (openFileDialog.ShowDialog() == true) { FileInfo[] files = openFileDialog.FileNames.Select(f => new FileInfo(f)).ToArray(); //파일인포 int cnt = 0; //전체파일수 int chk = 0; //shp,dat파일수 foreach (FileInfo fi in files) { try { //파일객체 ItemsFile.Add(fi); if (fi.Extension.Contains("shp") || fi.Extension.Contains("shx") || fi.Extension.Contains("dbf") || fi.Extension.Contains("prj")) { chk++; } cnt++; } catch (Exception e) { Console.WriteLine(e.Message); } } if (chk < 4) { MessageBox.Show("shp, shx, dbf, prj 파일 4개를 선택해야합니다."); return; } if (cnt > 4) { MessageBox.Show("한번에 한종류의 shp파일만 업로드할수 있습니다."); return; } //파일업로드시작 upload_thread = new Thread(new ThreadStart(UploadFileListFX)); upload_thread.Start(); } }); //기존파일 다운로드버튼 이벤트 DownloadCmd = new RelayCommand <object>(delegate(object obj) { FileDtl dtl = obj as FileDtl; string file_name = dtl.DWN_NAM; try { source_file_path = BizUtil.GetDataFolder("shape", file_name); } catch (Exception) { Messages.ShowErrMsgBox("다운로드할 수 없습니다."); return; } //파일다운로드 saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.Title = "저장경로를 지정하세요."; //초기 파일명 지정 saveFileDialog.FileName = file_name; saveFileDialog.OverwritePrompt = true; saveFileDialog.Filter = "All files (*.*)|*.*"; if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { target_file_path = saveFileDialog.FileName; download_thread = new Thread(new ThreadStart(DownloadFX)); download_thread.Start(); } }); }
/// <summary> /// 생성자 /// </summary> public FileMngViewModel() { // 초기로딩처리 LoadedCommand = new DelegateCommand <object>(OnLoaded); // 파일인포리스트 ItemsFile = new ObservableCollection <FileInfo>(); ItemsSelect = new ObservableCollection <FileDtl>(); ItemsAdd = new ObservableCollection <FileDtl>(); //파일저장버튼 이벤트 SaveFileCmd = new RelayCommand <object>(delegate(object obj) { if (ItemsFile.Count < 1) { MessageBox.Show("저장할 파일이 없습니다."); return; } upload_thread = new Thread(new ThreadStart(UploadFileListFX)); upload_thread.Start(); }); //첨부내용 저장버튼 이벤트 SaveCmd = new RelayCommand <object>(OnSave); //파일삭제버튼 이벤트 DelCmd = new DelegateCommand <object>(delegate(object obj) { string seq = ""; try { seq = obj.ToString(); } catch (Exception) { } if (FmsUtil.IsNull(seq) || "0".Equals(seq)) { Messages.ShowErrMsgBox("삭제할 대상이 없습니다."); return; } string file_name = ""; string del_file_path = ""; //0.첨부파일정보가져오기 Hashtable param = new Hashtable(); try { param.Add("FIL_SEQ", Dtl.FIL_SEQ); param.Add("SEQ", seq); param.Add("sqlId", "SelectFileDtl"); DataTable dt = BizUtil.SelectList(param); //물리파일명 가져오기 file_name = dt.Rows[0]["UPF_NAM"].ToString(); } catch (Exception ex) { Messages.ShowInfoMsgBox(ex.ToString()); InitModel(); return; } //1.첨부파일상세테이블 삭제 param["sqlId"] = "DeleteFileSeq"; BizUtil.Update(param); //2.물리적파일 삭제 del_file_path = System.IO.Path.Combine(dir_name, file_name); try { FileInfo fi = new FileInfo(del_file_path); fi.Delete(); } catch (Exception) { } //삭제성공 Messages.ShowOkMsgBox(); InitModel(); }); //기존파일 다운로드버튼 이벤트 DownloadCmd = new RelayCommand <object>(delegate(object obj) { FileDtl dtl = obj as FileDtl; string file_name = dtl.DWN_NAM; string file_name2 = dtl.UPF_NAM; try { source_file_path = System.IO.Path.Combine(dir_name, file_name2); } catch (Exception) { Messages.ShowErrMsgBox("다운로드할 수 없습니다."); return; } //파일다운로드 saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.Title = "저장경로를 지정하세요."; //초기 파일명 지정 saveFileDialog.FileName = file_name; saveFileDialog.OverwritePrompt = true; //saveFileDialog.Filter = "Excel|*.xlsx"; //saveFileDialog.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*"; saveFileDialog.Filter = "All files (*.*)|*.*"; if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { target_file_path = saveFileDialog.FileName; download_thread = new Thread(new ThreadStart(DownloadFX)); download_thread.Start(); } }); //파일찾기버튼 이벤트 FindFileCmd = new RelayCommand <object>(delegate(object obj) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = true; openFileDialog.Filter = "All files (*.*)|*.*"; openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (openFileDialog.ShowDialog() == true) { FileInfo[] files = openFileDialog.FileNames.Select(f => new FileInfo(f)).ToArray(); //파일인포 foreach (FileInfo fi in files) { try { //파일객체 ItemsFile.Add(fi); //파일db객체 FileDtl dtl = new FileDtl(); dtl.DWN_NAM = fi.Name; dtl.FIL_TYP = fi.Extension.Replace(".", ""); dtl.FIL_SIZ = fi.Length.ToString(); ItemsSelect.Add(dtl); } catch (Exception) {} } } }); //윈도우 마우스드래그 WindowMoveCommand = new DelegateCommand <object>(delegate(object obj) { try { if (Mouse.LeftButton == MouseButtonState.Pressed) { if (fileMngView.WindowState == WindowState.Maximized) { fileMngView.Top = Mouse.GetPosition(fileMngView).Y - System.Windows.Forms.Cursor.Position.Y - 6; fileMngView.Left = System.Windows.Forms.Cursor.Position.X - Mouse.GetPosition(fileMngView).X + 20; fileMngView.WindowState = WindowState.Normal; } fileMngView.DragMove(); } } catch (Exception ex) { Messages.ShowErrMsgBoxLog(ex); } }); }