kienshien
دوشنبه 08 آبان 1391, 11:04 صبح
سلام به دوستان برنامه نويس.
يك جايي گير كردم شديد ، اگر كمكم كنيد واقعا ممنون ميشم ، مسئله اين هست كه قرار من كدي با سي شارپ بنويسم تا يك سري فايل از يك درايو مپ شده در شبكه كپي بشه روي كلاينت. من اين كها رو زدم ، ولي هيچ فايلي كپي نميشود البته كار كپي را به يك Background Worker سپردم ، جالب اينجاست فرم من نمايش داده نمي شود ، چيكار كنم ، خيلي قضيه حياتيست . كممممممممممممممك :گیج:
public partial class frmUpdate : Form
{
private string sdir = string.Empty;
public frmUpdate(bool x = false)
{
InitializeComponent();
}
private void frmUpdate_Shown(object sender, EventArgs e)
{
}
public void Progbar(List<String> lstFile)
{
CopyFiles.CopyFiles Temp = new CopyFiles.CopyFiles(lstFile, /*Application.StartupPath*/"E:\\test" + @"\");
CopyFiles.DIA_CopyFiles TempDiag = new CopyFiles.DIA_CopyFiles();
TempDiag.SynchronizationObject = this;
//Copy the files anysncrinsuly
Temp.CopyAsync(TempDiag);
//Uncomment this line to do a synchronous copy.
//Temp.Copy();
}
private void frmUpdate_Load(object sender, EventArgs e)
{
List<String> lstFile = new List<string>();
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(fals e);
//Application.Run(new Form1());
MapDrive newMap = new MapDrive();
try
{
/**************** Map A Drive For Update *******************/
string Driver_Name = string.Empty;
//newMap.Map(0,ref Driver_Name);
CopyFiles.Global.newMapDrive.Map(0, ref Driver_Name);
Thread.Sleep(2000);
/************************************************** *********/
string myFileVersionInfo = FileVersionInfo.GetVersionInfo(Application.Startup Path + "\\Customers.exe").FileVersion;
string updatedVersion = FileVersionInfo.GetVersionInfo(Driver_Name + "\\Customers.exe").FileVersion;
if (myFileVersionInfo != updatedVersion)
{
String sourceDir = Driver_Name + "\\";
sdir = sourceDir;
backgroundWorker1.RunWorkerAsync();
//Progbar(Directory.GetFiles(sourceDir, "*.*").Where(x => x.ToString() != "SalesManagement.exe").ToList());
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
try
{
foreach (var file in Directory.GetFiles(sdir).Where(x => x.ToString() != "SalesManagement.exe"))
{
File.Copy(file, Path.Combine(Application.StartupPath+"\\", Path.GetFileName(file)), true);
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
backgroundWorker1.CancelAsync();
}
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (!backgroundWorker1.CancellationPending)
{
MessageBox.Show("بروز رساني انجام شد");
Process.Start("Customers.exe");
CopyFiles.Global.newMapDrive.UnMap();
this.Close();
}
else
{
CopyFiles.Global.newMapDrive.UnMap();
this.Close();
}
}
}
يك جايي گير كردم شديد ، اگر كمكم كنيد واقعا ممنون ميشم ، مسئله اين هست كه قرار من كدي با سي شارپ بنويسم تا يك سري فايل از يك درايو مپ شده در شبكه كپي بشه روي كلاينت. من اين كها رو زدم ، ولي هيچ فايلي كپي نميشود البته كار كپي را به يك Background Worker سپردم ، جالب اينجاست فرم من نمايش داده نمي شود ، چيكار كنم ، خيلي قضيه حياتيست . كممممممممممممممك :گیج:
public partial class frmUpdate : Form
{
private string sdir = string.Empty;
public frmUpdate(bool x = false)
{
InitializeComponent();
}
private void frmUpdate_Shown(object sender, EventArgs e)
{
}
public void Progbar(List<String> lstFile)
{
CopyFiles.CopyFiles Temp = new CopyFiles.CopyFiles(lstFile, /*Application.StartupPath*/"E:\\test" + @"\");
CopyFiles.DIA_CopyFiles TempDiag = new CopyFiles.DIA_CopyFiles();
TempDiag.SynchronizationObject = this;
//Copy the files anysncrinsuly
Temp.CopyAsync(TempDiag);
//Uncomment this line to do a synchronous copy.
//Temp.Copy();
}
private void frmUpdate_Load(object sender, EventArgs e)
{
List<String> lstFile = new List<string>();
//Application.EnableVisualStyles();
//Application.SetCompatibleTextRenderingDefault(fals e);
//Application.Run(new Form1());
MapDrive newMap = new MapDrive();
try
{
/**************** Map A Drive For Update *******************/
string Driver_Name = string.Empty;
//newMap.Map(0,ref Driver_Name);
CopyFiles.Global.newMapDrive.Map(0, ref Driver_Name);
Thread.Sleep(2000);
/************************************************** *********/
string myFileVersionInfo = FileVersionInfo.GetVersionInfo(Application.Startup Path + "\\Customers.exe").FileVersion;
string updatedVersion = FileVersionInfo.GetVersionInfo(Driver_Name + "\\Customers.exe").FileVersion;
if (myFileVersionInfo != updatedVersion)
{
String sourceDir = Driver_Name + "\\";
sdir = sourceDir;
backgroundWorker1.RunWorkerAsync();
//Progbar(Directory.GetFiles(sourceDir, "*.*").Where(x => x.ToString() != "SalesManagement.exe").ToList());
}
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
try
{
foreach (var file in Directory.GetFiles(sdir).Where(x => x.ToString() != "SalesManagement.exe"))
{
File.Copy(file, Path.Combine(Application.StartupPath+"\\", Path.GetFileName(file)), true);
}
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
backgroundWorker1.CancelAsync();
}
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (!backgroundWorker1.CancellationPending)
{
MessageBox.Show("بروز رساني انجام شد");
Process.Start("Customers.exe");
CopyFiles.Global.newMapDrive.UnMap();
this.Close();
}
else
{
CopyFiles.Global.newMapDrive.UnMap();
this.Close();
}
}
}