Salar Ashgi
جمعه 25 دی 1388, 21:26 عصر
سلام به همه دوستان ، من میخوام برنامه File splitter & merger درست کنم که کاربر بتونه
یک فایل رو به چندین فایل(تعداد دلخواه) با یک پسوند (دلخواه) تقسیم کنه و بعد بتونه باهم
ادغام کنه ؟ (مثل برنامه Winrar )
البته خودم تقسیم یک فایل به دو قسمت رو نوشتم با توابع File.ReadAllBytes ولی وقتی بخوایم
تعداد فایل تقسیم شده نامحدود باشه ، چه روشی باید استفاده کنیم ؟
AliRezaPro
جمعه 25 دی 1388, 23:36 عصر
این کد رو نگاه کن
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;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.