Heim > Artikel > Backend-Entwicklung > C# implementiert die gleichzeitige Aufteilung mehrerer Dateien
using System.IO; using System.Windows.Forms; OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter ="All files (*.*)|*.*"; dlg.FilterIndex = 1; dlg.RestoreDirectory = true; dlg.Multiselect = true; if (dlg.ShowDialog() == DialogResult.OK) { foreach (string filetosplit in dlg.FileNames) { string targetpath="D:"; FileStream fsr = new FileStream(filetosplit, FileMode.Open, FileAccess.Read); long FileLength=fsr.Length; byte[] btArr = new byte[FileLength]; fsr.Read(btArr, 0, (int)FileLength); fsr.Close(); long PartLength=FileLength/3+FileLength%3; int nCount=(int)Math.Ceiling((double)FileLength/PartLength); string strFileName=Path.GetFileName(filetosplit); long byteCount=0; for(int i=1;i<=nCount;i++,byteCount=(i<nCount?byteCount+PartLength:FileLength-PartLength)) { FileStream fsw = new FileStream(targetpath + Path.DirectorySeparatorChar+ strFileName +i, FileMode.Create, FileAccess.Write); fsw.Write(btArr, (int)byteCount, (int)(i<nCount?PartLength:FileLength-byteCount)); fsw.Flush(); fsw.Close(); } fsr.Close(); } }