//浏览电子文件 private void previewFile() { if (lstFileExplorer.SelectedItems.Count == 0) { MB.WinBase.MessageBoxEx.Show("请选择需要导出的电子文件."); return; } try { FileDataInfo dataInfo = lstFileExplorer.SelectedItems[0].Tag as FileDataInfo; //string tempFile = System.AppDomain.CurrentDomain.BaseDirectory + @"temp\" + System.Guid.NewGuid().ToString().Replace('-','1') + dataInfo.Type; string tempFile = System.AppDomain.CurrentDomain.BaseDirectory + @"temp\" + System.Guid.NewGuid().ToString() + dataInfo.Type; System.IO.FileStream myStream = new System.IO.FileStream(tempFile, System.IO.FileMode.CreateNew); System.IO.BinaryWriter binWrite = new System.IO.BinaryWriter(myStream); binWrite.Write(dataInfo.Content); binWrite.Close(); myStream.Close(); System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo(); Info.FileName = tempFile;//FILE_PATH; //声明一个程序类 System.Diagnostics.Process Proc; //启动外部程序 Proc = System.Diagnostics.Process.Start(Info); } catch (Exception e) { MB.Util.TraceEx.Write("文件浏览有误" + e.Message); MB.WinBase.MessageBoxEx.Show("文件浏览有误,可能是找不到对应的打开程序。请重试."); } }
private void addFileToList(string fileFullName) { FileInfo fi = new FileInfo(fileFullName); int fileLen = (int)fi.Length; byte[] datas = new byte[fileLen]; System.IO.FileStream fileStream = fi.OpenRead(); fileStream.Read(datas, 0, fileLen); fileStream.Close(); FileDataInfo fileData = new FileDataInfo(); if (_FileList.Where <FileDataInfo>(o => string.Compare(o.Name, fi.Name, true) == 0).Count <FileDataInfo>() > 0) { return; } fileData.Name = fi.Name; fileData.Size = System.Convert.ToInt32(fi.Length); fileData.Type = fi.Extension; fileData.CreateDate = System.DateTime.Now; fileData.Content = datas; fileData.SmallFileIcon = MB.Util.MyConvert.Instance.ImageToByte(IconExtractor.GetFileIcon(fi.FullName, IconSize.Small)); fileData.LargeFileIcon = MB.Util.MyConvert.Instance.ImageToByte(Image.FromFile(fileFullName).GetThumbnailImage(_ShrinkImageSize.Width, _ShrinkImageSize.Height, null, new IntPtr())); //MB.Util.MyConvert.Instance.ImageToByte(IconExtractor.GetFileIcon(fi.FullName, IconSize.Large)); _FileList.Add(fileData); System.Windows.Forms.ListViewItem item = createItemByInfo(fileData); lstFileExplorer.Items.Add(item); }
//删除选择的行 private void deleteFile() { if (lstFileExplorer.SelectedItems.Count == 0) { MB.WinBase.MessageBoxEx.Show("请选择需要删除的电子文件."); return; } while (lstFileExplorer.SelectedItems.Count > 0) { System.Windows.Forms.ListViewItem item = lstFileExplorer.SelectedItems[0]; FileDataInfo dataInfo = item.Tag as FileDataInfo; _FileList.Remove(dataInfo); lstFileExplorer.Items.Remove(item); } }
//导出电子文件 private void outputFile() { if (lstFileExplorer.SelectedItems.Count == 0) { MB.WinBase.MessageBoxEx.Show("请选择需要导出的电子文件."); return; } try { FileDataInfo dataInfo = lstFileExplorer.SelectedItems[0].Tag as FileDataInfo; System.Windows.Forms.SaveFileDialog saveDlg = new System.Windows.Forms.SaveFileDialog(); saveDlg.DefaultExt = dataInfo.Type; string fileType = dataInfo.Type; saveDlg.Filter = fileType.Remove(0, 1) + " files (*" + fileType + ")|*" + fileType;; if (saveDlg.ShowDialog() == DialogResult.OK) { System.IO.Stream outPut = null; if ((outPut = saveDlg.OpenFile()) != null) { if (outPut.Length > 0) { DialogResult re = MB.WinBase.MessageBoxEx.Question("文件已经存在,是否要覆盖原先的文件?"); if (re != DialogResult.Yes) { outPut.Close(); return; } } System.IO.BinaryWriter binWrite = new System.IO.BinaryWriter(outPut); binWrite.Write(dataInfo.Content); binWrite.Close(); if (outPut != null) { outPut.Close(); } MB.WinBase.MessageBoxEx.Show("文件导出操作成功!"); } } } catch (Exception ex) { MB.WinBase.MessageBoxEx.Show("文件导出操作不成功!"); MB.Util.TraceEx.Write(ex.Message); } }
//根据Info 创建listview 的item private System.Windows.Forms.ListViewItem createItemByInfo(FileDataInfo dataInfo) { System.Windows.Forms.ListViewItem item = new ListViewItem(dataInfo.Name); item.SubItems.Add(dataInfo.Type); item.SubItems.Add((dataInfo.Size / 1000).ToString() + " KB"); item.SubItems.Add(dataInfo.CreateDate.ToString("yyyy-MM-dd hh:mm")); item.SubItems.Add(dataInfo.Remark); item.Tag = dataInfo; _SmallIconList.Images.Add(MB.Util.MyConvert.Instance.ByteToImage(dataInfo.SmallFileIcon)); _IconList.Images.Add(MB.Util.MyConvert.Instance.ByteToImage(dataInfo.LargeFileIcon)); item.ImageIndex = _SmallIconList.Images.Count - 1; return(item); }
public EditFileExplorerEventArgs(System.Windows.Forms.ListViewItem item, FileDataInfo itemData) { _Item = item; _ItemData = itemData; }