📄 mainform.cs
字号:
}
}
private void lvFiles_ItemMouseHover(object sender, ListViewItemMouseHoverEventArgs e)
{
string p = exTree.SelectedPath + "\\" + e.Item.Text;
if (File.Exists(p))
{
try
{
FileInfo f = new FileInfo(p);
string Size;
if (f.Length < 1024)
Size = f.Length + "字节";
else if (f.Length < 1048576)
Size = (f.Length / 1024).ToString() + "Kbytes";
else if (f.Length < 1073741824)
Size = (f.Length / 1048576).ToString() + "Mbytes";
else
Size = (f.Length / 1073741824).ToString() + "Gbytes";
e.Item.ToolTipText = e.Item.Text + "\n" +
"大小:" + Size + "\n" +
"最后修改:" + f.LastWriteTime.ToLocalTime().ToString() + "\n" +
"创建于:" + f.CreationTime.ToLocalTime().ToString();
}
catch (Exception)
{
e.Item.ToolTipText = "无法访问";
}
}
else
{
try
{
DirectoryInfo di = new DirectoryInfo(p);
e.Item.ToolTipText = e.Item.Text + "\n" +
"文件夹数:" + di.GetDirectories().Length.ToString() + "\n" +
"文件数:" + di.GetFiles().Length.ToString() + "\n" +
"最后修改:" + di.LastWriteTime.ToLocalTime().ToString() + "\n" +
"创建于:" + di.CreationTime.ToLocalTime().ToString();
}
catch (Exception)
{
e.Item.ToolTipText="无法访问";
e.Item.BackColor = System.Drawing.Color.Gray;
e.Item.Tag = false;
}
}
}
private void lvFiles_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back)
try
{
exTree.SelectedPath=Directory.GetParent(exTree.SelectedPath).FullName;
Refresh();
}
catch (Exception)
{
;
}
}
private void 新建NToolStripButton_Click(object sender, EventArgs e)
{
try
{
string name = "新建文件夹" + DateTime.Now.Year.ToString() + '-' + DateTime.Now.Month.ToString() + '-' + DateTime.Now.Hour.ToString() + '-' + DateTime.Now.Minute.ToString() + '-' + DateTime.Now.Second.ToString();
Directory.CreateDirectory(exTree.SelectedPath+ name);
}
catch (Exception)
{
MessageBox.Show("无法创建新文件夹", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void DeleteFolder(string Path)
{
string[] ds = System.IO.Directory.GetDirectories(Path);
string[] fs = System.IO.Directory.GetFiles(Path);
foreach (string s in fs)
System.IO.File.Delete(s);
foreach (string s in ds)
{
if ((System.IO.Directory.GetDirectories(s).Length == 0) && (System.IO.Directory.GetFiles(s).Length == 0))
System.IO.Directory.Delete(s);
else
DeleteFolder(s);
}
System.IO.Directory.Delete(Path);
}
private void 打开OToolStripButton_Click(object sender, EventArgs e)
{
if (al.Count > 0)
{
string text;
if (al.Count > 1)
text = "您确定要永久删除这" + al.Count + "项吗?";
else
text = "您确定要永久删除" + al[0] + "吗?";
if (MessageBox.Show(text, "确认", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
foreach (string s in al)
{
try
{
if (System.IO.File.Exists(s))
System.IO.File.Delete(s);
else
while (System.IO.Directory.Exists(s))
DeleteFolder(s);
}
catch (Exception err)
{
MessageBox.Show(err.Message + "\n", "无法删除", MessageBoxButtons.OK, MessageBoxIcon.Error);
continue;
}
}
}
}
}
private void 保存SToolStripButton_Click(object sender, EventArgs e)
{
ToCopies.Clear();
if (al.Count > 0)
{
foreach (string s in al)
ToCopies.Add(s);
DelOrigin = false;
tsbPaste.Enabled = true;
}
}
public static void copyDirectory(string Src, string Dst)
{
String[] Files;
if (Dst[Dst.Length - 1] != Path.DirectorySeparatorChar)
Dst += Path.DirectorySeparatorChar;
if (!Directory.Exists(Dst)) Directory.CreateDirectory(Dst);
Files = Directory.GetFileSystemEntries(Src);
foreach (string Element in Files)
{
// Sub directories
if (Directory.Exists(Element))
copyDirectory(Element, Dst + Path.GetFileName(Element));
// Files in directory
else
File.Copy(Element, Dst + Path.GetFileName(Element), true);
}
}
private void 剪切UToolStripButton_Click(object sender, EventArgs e)
{
if (ToCopies.Count > 0)
{
foreach (string s in ToCopies)
{
if (File.Exists(s))
{
try
{
FileInfo fi = new FileInfo(s);
fi.CopyTo(exTree.SelectedPath+"\\" + fi.Name, true);
}
catch (Exception err)
{
MessageBox.Show(err.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
}
}
else
{
copyDirectory(s,exTree.SelectedPath+"\\"+new DirectoryInfo(s).Name);
}
if (DelOrigin)
if (File.Exists(s))
File.Delete(s);
else
while (System.IO.Directory.Exists(s))
DeleteFolder(s);
}
}
Refresh();
}
private void 打印PToolStripButton_Click(object sender, EventArgs e)
{
ToCopies.Clear();
if (al.Count > 0)
{
foreach (string s in al)
ToCopies.Add(s);
DelOrigin = true;
tsbPaste.Enabled = true;
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
if (lvFiles.SelectedItems.Count == 1)
lvFiles.SelectedItems[0].BeginEdit();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
if ((lvFiles.SelectedItems.Count == 1)&&(File.Exists(exTree.SelectedPath+"\\"+lvFiles.SelectedItems[0].Text)))
Process.Start(exTree.SelectedPath+lvFiles.SelectedItems[0].Text);
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
try
{
exTree.SelectedPath = Directory.GetParent(exTree.SelectedPath).FullName;
Refresh();
}
catch (Exception)
{
;
}
}
private void lvFiles_SelectedIndexChanged(object sender, EventArgs e)
{
if (lvFiles.SelectedIndices.Count > 0)
{
tsbCopy.Enabled = true;
tsbCut.Enabled = true;
tsbDelete.Enabled = true;
if (lvFiles.SelectedIndices.Count == 1)
{
tsbRename.Enabled = true;
if (File.Exists(exTree.SelectedPath + "\\" + lvFiles.SelectedItems[0].Text))
tsbOpen.Enabled = true;
else
tsbOpen.Enabled = false;
}
}
else
{
tsbCopy.Enabled = false;
tsbCut.Enabled = false;
tsbDelete.Enabled = false;
tsbRename.Enabled = false;
tsbOpen.Enabled = false;
tsbDelete.Enabled = false;
}
}
private void lvFiles_Leave(object sender, EventArgs e)
{
toolStrip1.Enabled = false;
tsbCopy.Enabled = false;
tsbCut.Enabled = false;
tsbDelete.Enabled = false;
tsbRename.Enabled = false;
tsbOpen.Enabled = false;
tsbDelete.Enabled = false;
}
private void lvFiles_Enter(object sender, EventArgs e)
{
toolStrip1.Enabled = true;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -