A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 zhangcheng5468 于 2013-7-9 20:23 编辑

WPF写的Socket中传送文件时接收端怎么确定发送文件的类型?代码如下:
  1. private void Communication(object key)
  2.         {   
  3.             while (true)
  4.             {
  5.                 byte[] byteData = new byte[1024 * 1024 * 2];//创建一个2M的缓存区
  6.                 int length = dictSocket[key.ToString()].Receive(byteData);
  7.                 //根据标识位判断传送的是文件还是消息
  8.                 if (byteData[0] == 1)//文件
  9.                 {
  10.                     SaveFileDialog sfd = new SaveFileDialog();
  11.                     if (sfd.ShowDialog() == true)
  12.                     {
  13.                         using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create))
  14.                         {
  15.                             sfd.AddExtension=true;
  16.                             fs.Write(byteData, 1, length - 1);
  17.                             ShowMsg(DateTime.Now + "  " + key + "向服务器  传送:" + sfd.FileName);
  18.                         }
  19.                     }
  20.                 }
  21.                 else if(byteData[0]==0)//消息
  22.                 {
  23.                     ShowMsg(DateTime.Now + "  " + key + "-服务端  说:" + Encoding.UTF8.GetString(byteData, 1, length) + "\n");
  24.                 }
  25.                
  26.             }
复制代码
在接收端弹出文件另存为对话框时并没有文件类型,如何才能确定传送文件的类型呢?求解?
PS:在传送文件是倒是可以限定文件类型集合~

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

3 个回复

正序浏览
通过Path.GetExtension(string path)获取文件类型
回复 使用道具 举报
changweihua 发表于 2013-7-6 16:41
既然你传了标识文件还是信息的字节,为什么不在加个文件类型的标识字节呢 ...

在WPF当中如何获取文件类型呢?除了使用正则表达式?
回复 使用道具 举报
既然你传了标识文件还是信息的字节,为什么不在加个文件类型的标识字节呢

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马