form1.cs
来自「银行家算法 具有详细的说明文档 可供学生朋友使用和学习」· CS 代码 · 共 2,196 行 · 第 1/5 页
CS
2,196 行
MessageBox.Show("用户原密码错误。");
}
else
{
if(NewPassWord1!=NewPassWord2)
{
MessageBox.Show("两次输入的密码不相同。");
}
else
{
bool result=UserList.EditPassword(G_UserName,G_PassWord,NewPassWord1);
if(result==true)
{
G_PassWord=NewPassWord1;
MessageBox.Show("密码修改成功。");
}
else
{
MessageBox.Show("密码修改失败。");
}
}
}
}
}
private void menuNewFile_Click(object sender, System.EventArgs e)
{
menuPasteFile.Enabled=false;
menuPasteFolder.Enabled=false;
if(G_Shared==true)
{
MessageBox.Show("共享文件夹不允许创建文件。");
return;
}
FrmNewFile frmNewFile=new FrmNewFile();
if(frmNewFile.ShowDialog()==DialogResult.OK)
{
string FileName=frmNewFile.FileName;
string FileType=frmNewFile.Type;
int Length=frmNewFile.Length;
if(FileName==""||FileType=="")
{
MessageBox.Show("文件名称或类型不能为空值。");
return;
}
else
{
bool result=G_Folder.AddFile(FileName,FileType,Length);
if(result==true)
{
MessageBox.Show("新建文件成功。");
ListViewItem item=new ListViewItem(FileName);
item.SubItems.Add(Length.ToString());
item.SubItems.Add(FileType);
item.SubItems.Add(((FileInfo)G_Folder.FileList[G_Folder.FileList.Count-1]).CreateTime.ToString());
if(FileType.ToLower()=="txt")
{
item.ImageIndex=0;
}
if(FileType.ToLower()=="exe")
{
item.ImageIndex=1;
}
if(FileType.ToLower()!="txt"&&FileType.ToLower()!="exe")
{
item.ImageIndex=2;
}
listView1.Items.Add(item);
}
else
{
MessageBox.Show("新建文件失败。");
}
}
}
}
private void menuNewFolder_Click(object sender, System.EventArgs e)
{
menuPasteFile.Enabled=false;
menuPasteFolder.Enabled=false;
if(G_Shared==true)
{
MessageBox.Show("共享文件夹不允许创建文件夹。");
return;
}
FrmNewFolder frmNewFolder=new FrmNewFolder();
if(frmNewFolder.ShowDialog()==DialogResult.OK)
{
string FolderName=frmNewFolder.FolderName;
if(FolderName=="")
{
MessageBox.Show("文件夹名称不能为空。");
return;
}
else
{
bool result=G_Folder.AddFolder(FolderName);
if(result==true)
{
MessageBox.Show("新建文件夹成功。");
UserInfo userInfo=(UserInfo)UserList.UserList[G_UserIndex];
userInfo.GeneralTreeView(treeView1.Nodes[0]);
}
else
{
MessageBox.Show("新建文件夹失败。");
}
}
}
}
private void treeView1_BeforeSelect(object sender, System.Windows.Forms.TreeViewCancelEventArgs e)
{
UserInfo userInfo=(UserInfo)UserList.UserList[G_UserIndex];
tbAdr.Text=e.Node.FullPath;
if(e.Node.FullPath.StartsWith("共享"))
{
G_Shared=true;
SetSharedFolder(e.Node.FullPath);
}
else
{
G_Shared=false;
SetCurrentFolder(e.Node.FullPath,userInfo.Folder);
}
}
private bool SetCurrentFolder(string _FullPath,FolderInfo _dir)
{
string FullPath=_FullPath;
int index=FullPath.IndexOf("\\");
if(index>=0)
{
FullPath=FullPath.Remove(0,index+1);
index=FullPath.IndexOf("\\");
string shortname;
if(index>=0)
{
shortname=FullPath.Substring(0,index);
}
else
{
shortname=FullPath;
}
foreach(Object obj in _dir.FolderList)
{
FolderInfo dir=(FolderInfo)obj;
if(dir.Name==shortname)
{
if(SetCurrentFolder(FullPath,dir)==true)
{
return true;
}
}
}
return false;
}
else
{
if(_dir.Name==_FullPath)
{
G_Folder=_dir;
_dir.GeneralListView(listView1);
return true;
}
else
{
return false;
}
}
}
private void SetSharedFolder(string _FullPath)
{
string FullPath=_FullPath;
int index=FullPath.IndexOf("\\");
if(index>=0)
{
FullPath=FullPath.Remove(0,index+1);
index=FullPath.IndexOf("\\");
if(index>=0)
{
string username=FullPath.Substring(0,index);
FullPath=FullPath.Remove(0,index+1);
index=UserList.FindUser(username);
UserInfo user=(UserInfo)UserList.UserList[index];
index=FullPath.IndexOf("\\");
string firstFolder;
if(index>=0)
{
firstFolder=FullPath.Substring(0,index);
}
else
{
firstFolder=FullPath;
}
foreach(Object obj in user.SharedList)
{
SharedFolderRecord rec=(SharedFolderRecord)obj;
if(rec.GetLastName()==firstFolder)
{
if(rec.PassWord!=""&&username!=G_UserName)
{
FrmRename frmInputPassWord=new FrmRename();
frmInputPassWord.Text="请输入"+rec.GetLastName()+"文件夹的访问密码";
frmInputPassWord.label1.Text="访问密码:";
frmInputPassWord.textNewName.PasswordChar='*';
DialogResult result=frmInputPassWord.ShowDialog();
//不明白为什么G_Shared的值在这里会改变
G_Shared=true;
if(result==DialogResult.OK)
{
if(frmInputPassWord.NewName==rec.PassWord)
{
SetCurrentFolder(rec.FullPath,user.Folder);
}
else
{
MessageBox.Show("访问密码错误!");
listView1.Items.Clear();
return;
}
}
else
{
listView1.Items.Clear();
return;
}
}
else
{
SetCurrentFolder(rec.FullPath,user.Folder);
}
}
}
/*string shortname;
if(index>=0)
{
shortname=FullPath.Substring(0,index);
}
else
{
shortname=FullPath;
}
foreach(Object obj in _dir.FolderList)
{
FolderInfo dir=(FolderInfo)obj;
if(dir.Name==shortname)
{
SetCurrentFolder(FullPath,dir);
}
}*/
}
//选中的是“共享”下面的“用户”节点
else
{
index=UserList.FindUser(FullPath);
UserInfo user=(UserInfo)UserList.UserList[index];
//G_Folder=user.SharedFolder;
//G_Folder.GeneralListView(listView1);
listView1.Items.Clear();
}
}
//选中的是“共享”节点
else
{
listView1.Items.Clear();
}
}
private void menuDelFile_Click(object sender, System.EventArgs e)
{
string FileName;
menuPasteFile.Enabled=false;
menuPasteFolder.Enabled=false;
if(G_Shared==true)
{
MessageBox.Show("共享文件夹不允许删除文件。");
return;
}
try
{
FileName=listView1.SelectedItems[0].Text;
}
catch(Exception)
{
MessageBox.Show("选择要删除的文件有误。");
return;
}
string Type=listView1.SelectedItems[0].SubItems[2].Text;
if(MessageBox.Show("是否删除文件"+FileName+"."+Type,"确认删除",MessageBoxButtons.OKCancel,MessageBoxIcon.Question)==DialogResult.OK)
{
bool result=G_Folder.DelFile(FileName,Type);
if(result==true)
{
MessageBox.Show("操作成功。");
G_Folder.GeneralListView(listView1);
}
else
{
MessageBox.Show("操作失败。");
}
}
}
private void menuRenameFile_Click(object sender, System.EventArgs e)
{
string OldName;
string OldType;
menuPasteFile.Enabled=false;
menuPasteFolder.Enabled=false;
if(G_Shared==true)
{
MessageBox.Show("共享文件夹不允许重命名文件。");
return;
}
try
{
OldName=listView1.SelectedItems[0].Text;
OldType=listView1.SelectedItems[0].SubItems[2].Text;
}
catch(Exception)
{
MessageBox.Show("选择要重命名的文件有误。");
return;
}
FrmNewFile frmNewFile=new FrmNewFile();
frmNewFile.Text="文件重命名";
frmNewFile.label3.Visible=false;
frmNewFile.cbLength.Visible=false;
frmNewFile.nudLength.Visible=false;
if(frmNewFile.ShowDialog()==DialogResult.OK)
{
string NewName=frmNewFile.FileName;
string NewType=frmNewFile.Type;
if(NewName==""||NewType=="")
{
MessageBox.Show("文件名称和类型不能为空。");
return;
}
bool result=G_Folder.RenameFile(OldName,OldType,NewName,NewType);
if(result==true)
{
MessageBox.Show("文件重命名成功。");
G_Folder.GeneralListView(listView1);
}
else
{
MessageBox.Show("文件重命名失败。");
}
}
}
private void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
if (e.Column==this.sorter.SortColumn)
{
if (this.sorter.SortOrder==SortOrder.Ascending)
this.sorter.SortOrder=SortOrder.Descending;
else
if (this.sorter.SortOrder==SortOrder.Descending)
this.sorter.SortOrder=SortOrder.Ascending;
else
return;
}
else
{
this.sorter.SortColumn=e.Column;
}
this.listView1.Sort();
}
private void menuOutputExample_Click(object sender, System.EventArgs e)
{
OpenFileDialog ofd=new OpenFileDialog();
string FileName="Example.bin";
ofd.Title="导出示例文件";
ofd.CheckFileExists=false;
ofd.Filter="示例文件(*.bin)|*.bin";
ofd.Multiselect=false;
ofd.DefaultExt="bin";
if(ofd.ShowDialog()!=DialogResult.OK)
{
return;
}
FileName=ofd.FileName;
try
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(FileName, FileMode.Create,FileAccess.Write, FileShare.None);
formatter.Serialize(stream,UserList);
stream.Close();
MessageBox.Show("导出示例成功。");
}
catch(Exception Ex)
{
MessageBox.Show(Ex.Message);
MessageBox.Show("导出示例错误。");
}
}
private void menuInputExample_Click(object sender, System.EventArgs e)
{
OpenFileDialog ofd=new OpenFileDialog();
string FileName="Example.bin";
ofd.Title="导入示例文件";
ofd.CheckFileExists=true;
ofd.Filter="示例文件(*.bin)|*.bin";
ofd.Multiselect=false;
ofd.DefaultExt="bin";
if(ofd.ShowDialog()!=DialogResult.OK)
{
return;
}
FileName=ofd.FileName;
try
{
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream(FileName, FileMode.Open,FileAccess.Read, FileShare.Read);
UserList=(UserCollection)formatter.Deserialize(stream);
stream.Close();
MessageBox.Show("导入示例成功。");
}
catch(Exception Ex)
{
MessageBox.Show(Ex.Message);
MessageBox.Show("导入示例失败");
}
}
private void menuRenameFolder_Click(object sender, System.EventArgs e)
{
menuPasteFile.Enabled=false;
menuPasteFolder.Enabled=false;
if(G_Shared==true)
{
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?