FileCode.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*----------------------------------------------------------------
  2. // Copyright (C) 2007 liu523@QQ.COM
  3. // 版权所有。
  4. // 开发者:liu523@QQ.COM团队
  5. // 文件名:FileCode.cs
  6. // 文件功能描述:涉及到文件管理的指令-文件指令类。
  7. //----------------------------------------------------------------*/
  8. using System;
  9. using System.IO;
  10. namespace RemoteControlLib.Codes
  11. {
  12. /// <summary>
  13. /// 文件指令类
  14. /// </summary>
  15. [Serializable]
  16. public class FileCode : BaseCode
  17. {
  18. private string fileName;
  19. private string savePath;
  20. private byte[] mbyte;
  21. /// <summary>
  22. /// 文件字节数
  23. /// </summary>
  24. private long fileLength;
  25. /// <summary>
  26. /// 文件流字节块
  27. /// </summary>
  28. public byte[] Mbyte
  29. {
  30. get { return mbyte; }
  31. set { mbyte = value; }
  32. }
  33. /// <summary>
  34. /// 保存路径
  35. /// </summary>
  36. public string SavePath
  37. {
  38. get { return savePath; }
  39. set { savePath = value; }
  40. }
  41. /// <summary>
  42. /// 文件指令类的构造函数
  43. /// </summary>
  44. /// <param name="fileName"></param>
  45. public FileCode(string fileName)
  46. {
  47. this.fileName = fileName;
  48. }
  49. /// <summary>
  50. /// 读取文件
  51. /// </summary>
  52. public void readFile()
  53. {
  54. FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
  55. fileLength = fileStream.Length;
  56. mbyte = new byte[fileLength];
  57. int m = 0;
  58. int startmbyte = 0;
  59. int allmybyte = (int)fileLength;
  60. do
  61. {
  62. m = fileStream.Read(mbyte, startmbyte, allmybyte);
  63. startmbyte += m;
  64. allmybyte -= m;
  65. } while (m > 0);
  66. fileStream.Close();
  67. }
  68. /// <summary>
  69. /// 保存文件
  70. /// </summary>
  71. public void SaveFile()
  72. {
  73. try
  74. {
  75. FileStream output = new FileStream(savePath, FileMode.OpenOrCreate, FileAccess.Write);
  76. output.Write(mbyte, 0, (int)fileLength);
  77. output.Close();
  78. }
  79. catch (Exception exp)
  80. {
  81. System.Windows.Forms.MessageBox.Show(exp.ToString());
  82. }
  83. }
  84. }
  85. }