黑马程序员技术交流社区

标题: WPF写的Socket中传送文件时接收端怎么确定发送文件的类型? [打印本页]

作者: zhangcheng5468    时间: 2013-7-6 15:45
标题: WPF写的Socket中传送文件时接收端怎么确定发送文件的类型?
本帖最后由 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:在传送文件是倒是可以限定文件类型集合~

作者: changweihua    时间: 2013-7-6 16:41
既然你传了标识文件还是信息的字节,为什么不在加个文件类型的标识字节呢
作者: zhangcheng5468    时间: 2013-7-6 18:06
changweihua 发表于 2013-7-6 16:41
既然你传了标识文件还是信息的字节,为什么不在加个文件类型的标识字节呢 ...

在WPF当中如何获取文件类型呢?除了使用正则表达式?
作者: zhangcheng5468    时间: 2013-7-9 20:23
通过Path.GetExtension(string path)获取文件类型




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2