C# Path den dosya kopyalama – taşıma (indir)

using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
using System.Threading;

namespace CEDAS_DosyaTasi
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
CheckForIllegalCrossThreadCalls = false;

lblPercent.Text = “”;
progressBar1.Visible = false;
rbKopyala.Checked = true;
cbPathGuncellensin.Checked = true;
}

private void btnVeriTabaniSec_Click(object sender, EventArgs e)
{
DialogResult sonuc = openFileDialog1.ShowDialog();
if (sonuc == DialogResult.OK)
{
txtVeriTabani.Text = openFileDialog1.FileName;
}
}

private void btnHedefKlasorSec_Click(object sender, EventArgs e)
{
DialogResult sonuc = folderBrowserDialog1.ShowDialog();
if (sonuc == DialogResult.OK)
{
txtHedefKlasor.Text = folderBrowserDialog1.SelectedPath;
}
}

private void btnIslem_Click(object sender, EventArgs e)
{
if (txtVeriTabani.Text == “”)
{
MessageBox.Show(“Veri tabanı seçmeden devam edemezsiniz.”);
return;
}
if (txtHedefKlasor.Text == “”)
{
MessageBox.Show(“Hedef klasör seçmeden devam edemezsiniz.”);
return;
}

btnHedefKlasorSec.Enabled = false;
btnVeriTabaniSec.Enabled = false;
btnIslem.Enabled = false;
cbPathGuncellensin.Enabled = false;
rbKopyala.Enabled = false;
rbTasi.Enabled = false;

progressBar1.Visible = true;

Thread t = new Thread(islem);
t.Priority = ThreadPriority.Highest;
t.Start();
}

void islem()
{
int id = 0;
string dokumanPath = “”;

string connectionString = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” + txtVeriTabani.Text + “;Persist Security Info=False;”;
OleDbConnection conn = new OleDbConnection(connectionString);
OleDbCommand komut = new OleDbCommand(“SELECT ID,DokumanPath FROM AboneDokumanlari”, conn);

OleDbDataReader reader = null;

try
{
conn.Open();

OleDbCommand commandText = new OleDbCommand(“SELECT COUNT(*) FROM AboneDokumanlari”, conn);
Int32 rowCountInTable = (Int32)commandText.ExecuteScalar();

progressBar1.Visible = true;
progressBar1.Value = 0;
progressBar1.Minimum = 0;
progressBar1.Maximum = rowCountInTable;

reader = komut.ExecuteReader();
SmartDataReader smartReader = new SmartDataReader(reader);

while (smartReader.Read())
{
progressBar1.Value++;
int percent = (int)(((double)progressBar1.Value / (double)progressBar1.Maximum) * 100);
lblPercent.Text = “%” + percent.ToString();

id = smartReader.GetInt32(“ID”);
dokumanPath = smartReader.GetString(“DokumanPath”);

if (File.Exists(dokumanPath))
{
if (Directory.Exists(txtHedefKlasor.Text))
{
string dosyaAdi = Path.GetFileName(dokumanPath);

string[] bol = dokumanPath.Split(‘\\’);

string dosyayiIcerenKlasor = “”;
string birUstKlasor = “”;
try
{
dosyayiIcerenKlasor = bol[bol.Length – 2];
birUstKlasor = bol[bol.Length – 3];

}
catch (Exception)
{
MessageBox.Show(“Veri tabanındaki kaydın iki üst klasörü bulunamadı. ID: ” + id.ToString() + ” Path: ” + dokumanPath);
}

if (!Directory.Exists(txtHedefKlasor.Text + “\\” + birUstKlasor))
{
Directory.CreateDirectory(txtHedefKlasor.Text + “\\” + birUstKlasor);
}
if (!Directory.Exists(txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor))
{
Directory.CreateDirectory(txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor);
}

if (!File.Exists(txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor + “\\” + dosyaAdi))
{
if (rbKopyala.Checked == true)
{
File.Copy(dokumanPath, txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor + “\\” + dosyaAdi);
}
if (rbTasi.Checked == true)
{
File.Move(dokumanPath, txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor + “\\” + dosyaAdi);
}
if (cbPathGuncellensin.Checked == true)
{
OleDbCommand cmd = new OleDbCommand(“UPDATE AboneDokumanlari SET DokumanPath=@DokumanPath WHERE ID=@ID”, conn);

cmd.Parameters.AddWithValue(“@DokumanPath”, txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor + “\\” + dosyaAdi);
cmd.Parameters.AddWithValue(“@ID”, id);

try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
else
{
MessageBox.Show(“Bu isimde bir dosya klasörde zaten var, işlem tamamlanamadı. ” + txtHedefKlasor.Text + “\\” + birUstKlasor + “\\” + dosyayiIcerenKlasor + “\\” + dosyaAdi + ” ID: ” + id.ToString(), “Dikkat”);
}
}
else
{
MessageBox.Show(txtHedefKlasor.Text + ” klasörü bulunamadı”, “Dikkat”);
}
}
else
{
MessageBox.Show(“ID: ” + id.ToString() + ” ” + dokumanPath, “Dosya Bulunamadı.”);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}

MessageBox.Show(“İşlem bitti”);

btnHedefKlasorSec.Enabled = true;
btnVeriTabaniSec.Enabled = true;
btnIslem.Enabled = true;
cbPathGuncellensin.Enabled = true;
rbKopyala.Enabled = true;
rbTasi.Enabled = true;

progressBar1.Visible = false;
lblPercent.Text = “”;
}
public sealed class SmartDataReader
{
private DateTime defaultDate;
public SmartDataReader(OleDbDataReader reader)
{
this.defaultDate = DateTime.MinValue;
this.reader = reader;
}

public int GetInt32(String column)
{
int data = (reader.IsDBNull(reader.GetOrdinal(column)))
? (int)0 : (int)reader[column];
return data;
}

public short GetInt16(String column)
{
short data = (reader.IsDBNull(reader.GetOrdinal(column)))
? (short)0 : (short)reader[column];
return data;
}

public float GetFloat(String column)
{
float data = (reader.IsDBNull(reader.GetOrdinal(column)))
? 0 : float.Parse(reader[column].ToString());
return data;
}

public bool GetBoolean(String column)
{
bool data = (reader.IsDBNull(reader.GetOrdinal(column)))
? false : (bool)reader[column];
return data;
}

public String GetString(String column)
{
String data = (reader.IsDBNull(reader.GetOrdinal(column)))
? null : reader[column].ToString();
return data;
}

public DateTime GetDateTime(String column)
{
DateTime data = (reader.IsDBNull(reader.GetOrdinal(column)))
? defaultDate : (DateTime)reader[column];
return data;
}

public bool Read()
{
return this.reader.Read();
}
private OleDbDataReader reader;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Environment.Exit(Environment.ExitCode);
}

}
}

 

 

KAYNAK KODU İNDİR :

DosyaTasi

Yazı oluşturuldu 100

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Benzer yazılar

Aramak istediğinizi üstte yazmaya başlayın ve aramak için enter tuşuna basın. İptal için ESC tuşuna basın.

Üste dön