SilverLight C#程序之:把二进制数据流转换为文件 并打开文件及exe程序

概述

上节我们了解了 将文件转换为二进制数据流 并保存到数据库中。。。

这节我们来看看 怎么将这些二进制流转换为文件 并打开他。。。

点击查看之后(此数据为保存到数据库中的数据)

SilverLight代码

View Code
   
   
< Grid > < Grid.RowDefinitions > < RowDefinition Height ="*" ></ RowDefinition > < RowDefinition Height ="30" ></ RowDefinition > </ Grid.RowDefinitions > < sdk:DataGrid x:Name ="gridConAttachmentModel" Grid.Row ="0" RowHeight ="25" HorizontalAlignment ="Stretch" VerticalAlignment ="Stretch" Background ="#FEFEFE" HeadersVisibility ="Column" BorderThickness ="0,1,0,0" GridLinesVisibility ="All" AutoGenerateColumns ="False" FrozenColumnCount ="1" AreRowDetailsFrozen ="True" ItemsSource =" {Binding ConAttachmentModelList} " SelectedItem =" {Binding ConAttachmentModel} " IsReadOnly ="True" > < sdk:DataGrid.Columns > < sdk:DataGridTextColumn Header ="序号" Binding =" {Binding ConAtt_OrderNum,Mode=TwoWay} " IsReadOnly ="True" /> < sdk:DataGridTextColumn Header ="附件名称" Binding =" {Binding ConAtt_Name,Mode=TwoWay} " /> < sdk:DataGridTextColumn Header ="附件资料" Binding =" {Binding ConAtt_Name,Mode=TwoWay} " > </ sdk:DataGridTextColumn > < sdk:DataGridTextColumn Header ="操作员编号" Binding =" {Binding ConAtt_MakerId,Mode=TwoWay} " IsReadOnly ="True" Visibility ="Collapsed" ></ sdk:DataGridTextColumn > < sdk:DataGridTextColumn Header ="操作员名称" Binding =" {Binding ConAtt_MakerName,Mode=TwoWay} " IsReadOnly ="True" /> < sdk:DataGridTextColumn Header ="备注" Binding =" {Binding ConAtt_Remark,Mode=TwoWay} " /> < sdk:DataGridTemplateColumn Header ="预览" Width ="90" > < sdk:DataGridTemplateColumn.CellTemplate > < DataTemplate > < HyperlinkButton Content ="查看" Margin ="5" Click ="HyperlinkButton_Click" ></ HyperlinkButton > </ DataTemplate > </ sdk:DataGridTemplateColumn.CellTemplate > </ sdk:DataGridTemplateColumn > </ sdk:DataGrid.Columns > </ sdk:DataGrid > < Button Height ="20" Width ="80" Margin ="5" Content ="添加文件" Grid.Row ="1" HorizontalAlignment ="Left" Command =" {Binding UploadCommd} " > </ Button > </ Grid >

cs代码

View Code
复制代码
   
   
private void HyperlinkButton_Click( object sender, RoutedEventArgs e) { // 获取当前选择行的实体对象 var conAttachmentModel = gridConAttachmentModel.SelectedItem as ConAttachmentModel; if (conAttachmentModel != null ) { // 如果不为空 把获取到的对象作为参数传入 web端 用来打开文件 RequestService.Sent(ContractManageUriNames.OpenContractFiles, conAttachmentModel, delegate ( object sent, ResponseArgs args) { }); } } // 打开文件 public void OpenContractFiles(ConAttachmentModel conAttachmentModel) { // 获取文件类型 // var filesType = conAttachmentModel.ConAtt_Name.Substring(conAttachmentModel.ConAtt_Name.LastIndexOf(".")); // 获取二进制流文件 var filebyte = conAttachmentModel.ConAtt_Files; // 创建的文件路径 var path = @" C:\Documents and Settings\Administrator\Local Settings\Temp\\ " + conAttachmentModel.ConAtt_Name; // 按照路径实例化文件 var file = new FileStream(path, FileMode.Create, FileAccess.Write); // 实例化一个用于写的 BinaryWriter var bw = new BinaryWriter(file); // 将传进来的二进制字符转换为8位无符号整数数组再写进去 bw.Write(filebyte); bw.Close(); // 关闭二进制流写入器 file.Close(); // 关闭文件流 // 创建Process命令 var cmd = new Process(); // 创建要运行的文件或者程序 var startfile = new ProcessStartInfo { FileName = file.Name, // 文件完全路径 WindowStyle = ProcessWindowStyle.Normal, // Windows窗口样式 UseShellExecute = true // 为true,则用默认的打开方式打开,如果是exe等,设置为false }; cmd.StartInfo = startfile; cmd.Start(); // 打开文件 }
复制代码

大功告成!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值