SilverLight C#程式之:把位元據流轉換為檔案 並開啟檔案及exe程式

來源:互聯網
上載者:User

概述

上節我們瞭解了 將檔案轉換為位元據流 並儲存到資料庫中。。。

這節我們來看看 怎麼將這些二進位流轉換為檔案 並開啟他。。。

點擊查看之後(此資料為儲存到資料庫中的資料)

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(); //開啟檔案
}

大功告成!!!

作者:記憶逝去的青春
出處:http://www.cnblogs.com/lukun/
本文著作權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,如有問題,可以通過http://www.cnblogs.com/lukun/  聯絡我,非常感謝。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.