zoukankan      html  css  js  c++  java
  • c#大文件分割合并

    public static bool SplitFile(string SourceFile,int nNoofFiles)
    {
    bool Split = false;

    try
    {

    FileStream fs = new FileStream(SourceFile, FileMode.Open, FileAccess.Read);
    int SizeofEachFile = (int)Math.Ceiling((double)fs.Length / nNoofFiles);

    for (int i = 0; i <= nNoofFiles; i++)
    {
    string baseFileName = Path.GetFileNameWithoutExtension(SourceFile);
    string Extension = Path.GetExtension(SourceFile);

    FileStream outputFile = new FileStream(Path.GetDirectoryName(SourceFile) + "\\" + baseFileName + "." +
    i.ToString().PadLeft(5, Convert.ToChar("0")) + Extension + ".tmp", FileMode.Create, FileAccess.Write);

    int bytesRead = 0;
    byte[] buffer = new byte[SizeofEachFile];

    if ((bytesRead = fs.Read(buffer, 0, SizeofEachFile)) > 0)
    {
    outputFile.Write(buffer, 0, bytesRead);
    }

    outputFile.Close();

    }
    fs.Close();
    }
    catch (Exception Ex)
    {
    throw Ex;
    }

    return Split;
    }






    public static bool MergeFile(string InputFileFolder)
    {
    bool Output = false;

    try
    {
    string[] tmpfiles = Directory.GetFiles(InputFileFolder, "*.tmp");

    FileStream outPutFile = null;
    string PrevFileName = "";

    foreach (string tempFile in tmpfiles)
    {
    string fileName = Path.GetFileNameWithoutExtension(tempFile);
    string baseFileName = fileName.Substring(0, fileName.IndexOf(Convert.ToChar(".")));
    string extension = Path.GetExtension(fileName);

    if (!PrevFileName.Equals(baseFileName))
    {
    if (outPutFile != null)
    {
    outPutFile.Flush();
    outPutFile.Close();
    }
    outPutFile = new FileStream(InputFileFolder + "\\" + baseFileName + extension, FileMode.OpenOrCreate, FileAccess.Write);

    }

    int bytesRead = 0;
    byte[] buffer = new byte[1024];
    FileStream inputTempFile = new FileStream(tempFile, FileMode.OpenOrCreate, FileAccess.Read);

    while ((bytesRead = inputTempFile.Read(buffer, 0, 1024)) > 0)
    outPutFile.Write(buffer, 0, bytesRead);

    inputTempFile.Close();
    File.Delete(tempFile);
    PrevFileName = baseFileName;

    }

    outPutFile.Close();
    }
    catch (Exception Ex)
    {
    throw Ex;
    }

    return Output;
    }
  • 相关阅读:
    fgets()函数读取键盘,去掉换行符或丢弃多余的字符
    c语言gets()函数与它的替代者fgets()函数
    基于京东手机销售数据用回归决策树预测价格
    「我去,这也能行!」令人惊叹的8个深度学习应用
    常见数据结构的 Python 实现(建议收藏)
    60 分钟极速入门 PyTorch
    大牛推荐的15本学习数据分析挖掘的好书
    排名前20的网页爬虫工具
    如何11 周打造全能Python工程师!
    初学者的编程自学指南
  • 原文地址:https://www.cnblogs.com/zzxap/p/2175756.html
Copyright © 2011-2022 走看看