【发布时间】:2013-01-07 19:28:58
【问题描述】:
我正在做一个应用程序,在该应用程序中,我拆分了一个 wmv 文件并将其传输到其他位置(在“x”kbs 中)。传输完成后,文件不播放,它给出一条消息,因为格式不受支持。是否存在任何其他方式。
我会解释我现在在做什么
我编写了一个远程应用程序,我想将 .wmv 文件从一台机器传输到另一台机器,我想拆分 .wmv 并将其发送到远程机器并在那里使用它。如果我尝试发送完整文件意味着它会占用很多看起来很糟糕的内存。所以我想拆分它并发送它。但是文件没有被播放它引发了一个不支持格式的异常。
以下是我刚刚在本地机器上完成的代码(不是远程处理):
try
{
FileStream fswrite = new FileStream("D:\\Movie.wmv", FileMode.Create);
int pointer = 1;
int bufferlength = 12488;
int RemainingLen = 0;
int AppLen = 0;
FileStream fst = new FileStream("E:\\Movie.wmv", FileMode.Open);
int TotalLen = (int)fst.Length;
fst.Close();
while (pointer != 0)
{
byte[] svid = new byte[bufferlength];
using (FileStream fst1 = new FileStream("E:\\Movie.wmv", FileMode.Open))
{
pointer = fst1.Read(svid, AppLen, bufferlength);
fst1.Close();
}
fswrite.Write(svid, 0, pointer);
AppLen += bufferlength;
RemainingLen = TotalLen-AppLen;
if(RemainingLen < bufferlength)
{
byte[] svid1 = new byte[RemainingLen];
using (FileStream fst2 = new FileStream("E:\\Movie.wmv", FileMode.Open))
{
pointer = fst2.Read(svid1, 0, RemainingLen);
fst2.Close();
}
fswrite.Write(svid, 0, pointer);
break;
}
}
fswrite.Close();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
【问题讨论】:
-
请解释您拆分文件的过程,以及您收到的错误消息。考虑只拆分文件并在本地运行它。尽可能多地分解问题总是一个好主意,因此您在任何一个时间点要解决的问题都尽可能易于管理。
-
你不能把一个 wmv 切成两半。你需要找到一个可以对 wmvs 进行操作的库,并使用它来拆分它。
-
请注意:“标志/需要版主注意”是针对管理问题 - 不是为了寻求答案。
-
至少格式化代码大括号内的代码。
标签: c#