向存在的文件中写入数据

在项目中碰见一个问题:通过服务器传送文件。

具体过程:1,现根据文件大小判断硬盘上是否有足够大的空间。

2,根据文件大小建立一个空的文件,占用这个空间。

3,开始接收文件,存放到刚才建立的文件中,及逐步的使用文件数据替代空文件。

解决方案:

1,判断硬盘剩余空间大小:

using System.Runtime.InteropServices;
[DllImport("kernel32.dll")]
        public static extern bool GetDiskFreeSpaceEx(
                string lpDirectoryName,
                out UInt64 lpFreeBytesAvailable,
                out UInt64 lpTotalNumberOfBytes,
                out UInt64 lpTotalNumberOfFreeBytes);
 ulong freeBytesAvailable = 0;
            ulong totalNumberOfBytes = 0;
            ulong totalNumberOfFreeBytes = 0;

            GetDiskFreeSpaceEx(
               "D:\\",
               out freeBytesAvailable,
               out totalNumberOfBytes,
               out totalNumberOfFreeBytes);

2,建立一个空的文件

FileStream fs = new FileStream(@"D:\AAAA\" + fileName, FileMode.Create, FileAccess.Write);
            byte[] buffer = new byte[fileLength];
            fs.Write(buffer, 0, fileLength);
            fs.Close();

3,开始接收文件,存放到刚才建立的文件中,及逐步的使用文件数据替代空文件

 FileStream fs = new FileStream(@"D:\AAAA\" + fileName, FileMode.OpenOrCreate, FileAccess.Write);
 fs.Position = 0;
fs.Seek(0, SeekOrigin.Current);
fs.Write(realBody, 0, fileLength);

4,最后关闭FileStream

fs.Close();





 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值