这是我写的复制文件的最简单例子. 我想知道有没有更好的实现方法? FileStream fs = new FileStream("f:\\aa.bin", FileMode.Open);
            List<byte[]> total = new List<byte[]>();            int length = 0;            const int BUFFERSIZE = 1024;
            int offset = 0;            int timesToRead = (int)Math.Ceiling(Convert.ToDouble(fs.Length)/Convert.ToDouble(BUFFERSIZE));            for(int i = 0; i <timesToRead; i++)
            {
                byte[] bytes = new byte[BUFFERSIZE];
                length = fs.Read(bytes, offset, BUFFERSIZE);
                total.Add(bytes);
            }            fs.Close();            FileStream wfs = new FileStream("f:\\bb.bin", FileMode.OpenOrCreate);            for (int i = 0; i < timesToRead; i++ )
            {
                if (i == timesToRead - 1)   //这句写的不好, 不知有什么更好的方法吗
                {
                    wfs.Write(total[i], 0, length);
                }
                else
                {
                    wfs.Write(total[i], 0, total[i].Length);
                }
            }            wfs.Close();谢谢啦

解决方案 »

  1.   

    System.IO.File.Copy (String, String)  //将现有文件复制到新文件。不允许改写同名的文件。 
      

  2.   

    呵呵, 误解我的意思了.我是说自己实现Copy, 只是一个小讨论.
      

  3.   

    如果文件真的很小,你那样用多个byte[],还不如直接用一个整个文件字节大小的byte[],顶多五、六行代码,也比你这代码高效用一个复用的合适大小的(具体与硬件有关)byte[]作为缓冲区循环读写才是正道~
      

  4.   

    哦.我基础不好. 其实我想做的事情是通过一个WebService读取本地一个资源返回给调用者.但是我发现了byte[] Bytes = File.ReadAllBytes("F:\\aa.bin");这个方法.呵呵. 问题解决了.