现在网络已经非常的普及,用户在使用网络时可以非常方便的自由传输文件,但是,如果用户用户想要传输的文件过大,则就会出现传输不方便的现象,这时将该大文件分割为多个小文件,然后,分批上传,就是一种不错的解决问题方法,那么,我们如何通过cc#编程语言将某个大文件分割为多个小文件呢?
关键代码:
class FileSplitter
{
// 分割文件的方法
public static void SplitFile(string filePath, long chunkSize)
{
if (!File.Exists(filePath))
{
Console.WriteLine("文件不存在!");
return;
}
string directory = Path.GetDirectoryName(filePath);
string fileName = Path.GetFileNameWithoutExtension(filePath);
string extension = Path.GetExtension(filePath);
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[chunkSize];
int bytesRead;
int partNumber = 1;
while ((bytesRead = fs.Read(buffer, 0, buffer.Length)) > 0)
{
string partFileName = Path.Combine(directory, $"{fileName}_part_{partNumber:D3}{extension}");
using (FileStream output = new FileStream(partFileName, FileMode.Create, FileAccess.Write))
{
output.Write(buffer, 0, bytesRead);
}
Console.WriteLine($"已创建分片文件:{partFileName}");
partNumber++;
}
}
Console.WriteLine("文件分割完成!");
}
// 程序入口
static void Main(string[] args)
{
Console.Write("请输入要分割的文件路径:");
string filePath = Console.ReadLine();
Console.Write("请输入每个分片的大小(MB):");
if (!int.TryParse(Console.ReadLine(), out int mbSize) || mbSize <= 0)
{
Console.WriteLine("输入无效!");
return;
}
long chunkSize = mbSize * 1024 * 1024; // 转换为字节
SplitFile(filePath, chunkSize);
}
}
评论