دانلود سورس کد FileManager با سی شارپ #C

دانلود سورس کد FileManager با سی شارپ #C
در این پست سورس کد مدیریت فایلها (FileManager) با زبان برنامه نویسی سی شارپ را میتوانید دانلود نمایید.
در این برنامه جالب شما میتوانید یک فایل منیجر کامل را ببینید. میتوانید به درایوهای سیستم و تمامی فایلهایتان دسترسی داشته باشید و شکل نمایش آنها را تغییر دهید. همچنین همچون یک FileManager معمولی میتوانید تمام عملیات copy، cut، paste، rename، new folder، delete و properties را روی هر فایل یا درایوی که بخواهید انجام دهید.
برنامه اصلی FileManager با زبان #C را میتوانید از پایین صفحه دانلود کنید.
کد فرم اصلی مدیریت فایلها با سی شارپ را در زیر مشاهده میکنید که در تمامی نسخه های ویژوال استودیو قابل استفاده می باشد.
amespace FileManager
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern bool CopyFile(string src, string dst, bool failIfExists);
[DllImport("kernel32", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern int MoveFile([In, MarshalAs(UnmanagedType.LPTStr)] string lpExistingFileName, [In, MarshalAs(UnmanagedType.LPTStr)] string lpNewFileName);
//***
public void LoadDrive()
{
string[] drvs = Directory.GetLogicalDrives();
listView1.Items.Clear();
foreach (string drv in drvs)
{
ListViewItem itm = new ListViewItem();
DriveInfo di = new DriveInfo(drv);
itm.Text = di.Name;
itm.Name = di.Name;
if (di.IsReady)
{
itm.Text += "(" + di.VolumeLabel + ")";
itm.ToolTipText = "AvailableFreeSpace : " + di.AvailableFreeSpace + "B" + " DriveFormat : " + di.DriveFormat + " DriveType : " + di.DriveType + " TotalFreeSpace : " + di.TotalFreeSpace+"B" + " TotalSize : " + di.TotalSize+"B" + " VolumeLabel : " + di.VolumeLabel;
}
switch (di.DriveType)
{
case DriveType.Fixed:
itm.ImageIndex = 0;
break;
case DriveType.CDRom:
itm.ImageIndex = 1;
break;
case DriveType.Removable:
itm.ImageIndex = 2;
break;
case DriveType.Network:
itm.ImageIndex = 5;
break;
case DriveType.Unknown:
itm.ImageIndex = 3;
break;
default:
itm.ImageIndex = 6;
break;
}
listView1.Items.Add(itm);
}
}
private void Form1_Load(object sender, EventArgs e)
{
LoadDrive();
}
private void listView1_DoubleClick(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
txtArdsBar.Text = itm.Name;
DirectoryInfo di = new DirectoryInfo(itm.Name);
if (di.Exists)
{
lblCurPath.Text ="Current : " + di.Name;
}
}
LoadDirectoresandFiles(txtArdsBar .Text);
}
//***
public void LoadDirectoresandFiles(string Path)
{
try
{
//load sub directoiers
if (Directory.Exists(Path))
{
listView1.Items.Clear();
System .Security .AccessControl .DirectorySecurity ds=new System.Security.AccessControl.DirectorySecurity (Path , System.Security.AccessControl.AccessControlSections.Access );
Directory.SetAccessControl(Path, ds);
string[] dirs = Directory.GetDirectories(Path);
foreach (string dir in dirs)
{
ListViewItem itm = new ListViewItem();
DirectoryInfo di = new DirectoryInfo(dir);
itm.Text = di.Name;
itm.Name = di.FullName;
itm.ToolTipText = " Attributes : " + di.Attributes + " Extension : " + di.Extension + " CreationTime : " + di.CreationTime + " Location : " + di.FullName + " LastAccessTime: " + di.LastAccessTime + " LastWriteTime : " + di.LastWriteTime + " Name : " + di.Name + " Parent : " +di.Parent+ " Root : " + di.Root;
itm.ImageIndex = 4;
listView1.Items.Add(itm);
}
//load files
string[] files = Directory.GetFiles(Path);
foreach (string file in files)
{
ListViewItem itm = new ListViewItem();
FileInfo fi = new FileInfo(file);
itm.Text = fi.Name;
itm.Name = fi.FullName;
itm.ToolTipText = " Attributes : " + fi.Attributes + " CreationTime : " + fi.CreationTime + " Directory:" + fi.Directory + " DirectoryName:" + fi.DirectoryName + " Extension : " + fi.Extension + " Location : " + fi.FullName + " LastAccessTime:" + fi.LastAccessTime + " LastWriteTime:" + fi.LastWriteTime + " Size:" + (fi.Length / 1024).ToString() + " KB" + " Name:" + fi.Name;
itm.ImageIndex = 7;
listView1.Items.Add(itm);
}
}
}
catch (IOException exx)
{
MessageBox.Show(exx.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
if (txtArdsBar.Text == "root" || txtArdsBar.TextLength <= 3)
{
LoadDrive();
txtArdsBar.Text = "root";
lblCurPath.Text = "root";
}
else
{
DirectoryInfo di = new DirectoryInfo(txtArdsBar.Text);
LoadDirectoresandFiles(di.Parent.FullName);
txtArdsBar.Text = di.Parent.FullName;
lblCurPath.Text = "Current Path : " + di.Name;
}
}
private void txtArdsBar_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Return)
{
DirectoryInfo di = new DirectoryInfo(txtArdsBar.Text);
if (di.Exists)
{
LoadDirectoresandFiles(di.FullName);
txtArdsBar.Text = di.FullName;
}
else if (txtArdsBar .Text =="root")
{
LoadDrive();
txtArdsBar.Text = "root";
}
}
}
string _srcPath;
string _srcName;
bool cut = false;
private void copyToolStripMenuItem_Click(object sender, EventArgs e)
{
cut = false;
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
DirectoryInfo di = new DirectoryInfo(itm.Name);
FileInfo fi = new FileInfo(itm.Name);
if (fi.Exists)
{
_srcPath = fi.FullName;
_srcName = fi.Name;
}
if (di.Exists)
{
_srcPath = di.FullName;
_srcName = di.Name;
}
}
}
private void pastToolStripMenuItem_Click(object sender, EventArgs e)
{
if (cut == false)
{
if (CopyFile(_srcPath, txtArdsBar.Text + "" + _srcName, true))
MessageBox.Show("Copy '" + _srcName + "' from : " + _srcPath + " to : " + txtArdsBar.Text + "" + _srcName);
else
MessageBox.Show("con not copy");
}
else
{
MoveFile(_srcPath, txtArdsBar.Text + "" + _srcName);
MessageBox.Show("Cut '" + _srcName + "' from : " + _srcPath + " to : " + txtArdsBar.Text + "" + _srcName);
}
LoadDirectoresandFiles(txtArdsBar.Text);
}
private void newFolderToolStripMenuItem_Click(object sender, EventArgs e)
{
Inputbox ib = new Inputbox("Enter Folder Name :");
ib.ShowDialog();
if (ib.DialogResult == DialogResult.OK)
{
System.Security.AccessControl.DirectorySecurity ds = new System.Security.AccessControl.DirectorySecurity(txtArdsBar.Text, System.Security.AccessControl.AccessControlSections.Access);
Directory.CreateDirectory(txtArdsBar.Text + "" +ib .Input , ds);
}
LoadDirectoresandFiles(txtArdsBar.Text);
}
private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
DirectoryInfo di = new DirectoryInfo(itm.Name);
FileInfo fi = new FileInfo(itm.Name);
if (di.Exists)
{
if (DialogResult.Yes == MessageBox.Show("Are you sure to delete " + itm.Text + " ?", "Delete Folder", MessageBoxButtons.YesNo))
{
SetAttrib(di.FullName);
Directory.Delete(itm.Name, recursive: true);
LoadDirectoresandFiles(txtArdsBar.Text);
}
}
if (fi.Exists)
{
if (DialogResult.Yes == MessageBox.Show("Are you sure to delete " + itm.Text + " ?", "Delete File", MessageBoxButtons.YesNo))
{
SetAttrib(fi.FullName);
fi.Delete();
LoadDirectoresandFiles(txtArdsBar.Text);
}
}
}
}
void SetAttrib(string Path)
{
DirectoryInfo di=new DirectoryInfo (Path );
di.Attributes = FileAttributes.Normal;
}
private void renameToolStripMenuItem_Click(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
itm.BeginEdit();
}
}
private void listView1_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
try
{
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
DirectoryInfo di = new DirectoryInfo(itm.Name);
FileInfo fi = new FileInfo(itm.Name);
if (di.Exists && e.Label != "")
{
SetAttrib(di.FullName);
System.Security.AccessControl.DirectorySecurity ds = new System.Security.AccessControl.DirectorySecurity(di.FullName, System.Security.AccessControl.AccessControlSections.Access);
Directory.SetAccessControl(di.FullName, ds);
Directory.Move(di.FullName, di.Parent.FullName + "" + e.Label);
}
if (fi.Exists && e.Label !="")
{
fi.MoveTo(di.Parent.FullName + "" + e.Label);
}
}
LoadDirectoresandFiles(txtArdsBar.Text);
}
catch (Exception exx)
{
MessageBox.Show(exx.Message);
}
}
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void goRootToolStripMenuItem_Click(object sender, EventArgs e)
{
LoadDrive();
txtArdsBar.Text = "root";
lblCurPath.Text = "root";
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox1 .SelectedIndex )
{
case 0:
listView1 .View =View .LargeIcon ;
break ;
case 1:
listView1 .View =View.SmallIcon ;
break ;
case 2:
listView1 .View =View .List ;
break ;
case 3:
listView1 .View =View.Tile ;
break ;
}
}
private void cutToolStripMenuItem_Click(object sender, EventArgs e)
{
cut = true;
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
DirectoryInfo di = new DirectoryInfo(itm.Name);
FileInfo fi = new FileInfo(itm.Name);
if (fi.Exists)
{
_srcPath = fi.FullName;
_srcName = fi.Name;
}
if (di.Exists)
{
_srcPath = di.FullName;
_srcName = di.Name;
}
}
}
private void propertiesToolStripMenuItem_Click(object sender, EventArgs e)
{
ListView.SelectedListViewItemCollection SelItm = new ListView.SelectedListViewItemCollection(listView1);
foreach (ListViewItem itm in SelItm)
{
MessageBox.Show(itm.ToolTipText, "Properties - " + itm.Text);
}
}
private void button1_Click_1(object sender, EventArgs e)
{
System.Diagnostics.Process.Start("http://WWw.SourceCodes.ir");
}
}
}
بصورت رایگان میتوانید سورس کد سی شارپ File Manager را دانلود کنید.
حجم فایل 404 KB
سلام خسته نباشید واقعا وب سایتتون جالبه فقط اگمیشد جایی داشته باشه که کاربرا بتونن پروژه بزارن رو وبتون ثبت نام کنن . عالی میشه . میخواستم پروژه بزارم نشد بازم مرسی