private void btn_Rename_Click(object sender, EventArgs e) // 파일/폴더의 이름을 바꾼다. { BinaryFormatter serializer = new BinaryFormatter(); if (selectedItem == null) // 선택 아이템 없으면 리턴 { MessageBox.Show("삭제할 항목을 선택해 주세요.", "알림"); return; } InputForm inForm = new InputForm(); input = ""; inForm.label1.Text = "바꿀 이름을 선택해 주세요(확장자명 제외)"; inForm.ShowDialog(this); if (input == "") // 아무것도 입력안하면 리턴 { return; } string prevName = selectedItem.SubItems[0].Text; // 원래 이름 TcpClient client = fileConnect(); NetworkStream stream = client.GetStream(); ReqReNamePack reqPack = new ReqReNamePack { PrevName = selectedPath + "\\" + prevName, ReName = selectedPath + "\\" + input, FileType = selectedItem.SubItems[3].Text.ToCharArray()[0] }; serializer.Serialize(stream, reqPack); // 요청 전송 Pack resPack = (Pack)serializer.Deserialize(stream); if (resPack.PackType == CONSTANTS.TYPE_ERROR) { MessageBox.Show(CONSTANTS.Err_String[resPack.Flag], "알림"); return; } if (selectedItem.SubItems[3].Text == "f") // 바꾼것이 파일일경우 아이템의 Name 값을 바꾼다. 아래는 확장자명 떼서 붙이는 문자열 추출 { selectedItem.SubItems[0].Text = input + prevName.Substring(prevName.LastIndexOf('.'), prevName.Length - prevName.LastIndexOf('.')); } else { selectedItem.SubItems[0].Text = input; selectedNode.Nodes[selectedItem.Index].Text = input; } list_File.Focus(); // 바뀐 아이템이 선택되도록 한다. stream.Close(); client.Close(); }
private void btn_NewDir_Click(object sender, EventArgs e) // 새 폴더를 만든다. { BinaryFormatter serializer = new BinaryFormatter(); input = ""; InputForm inForm = new InputForm();// 입력을 받을 폼 inForm.label1.Text = "새 폴더 이름을 입력해주세요."; inForm.ShowDialog(this); // 모달창으로 부른다. if (input == "") // 입력한게 없으면 리턴 { return; } TcpClient client = fileConnect(); NetworkStream stream = client.GetStream(); ReqNewDirPack reqPack = new ReqNewDirPack // 해당 경로에 새 폴더 만드는 요청 전송 { Path = selectedPath + "\\" + input }; serializer.Serialize(stream, reqPack); Pack resPack = (Pack)serializer.Deserialize(stream); if (resPack.PackType == CONSTANTS.TYPE_ERROR) { MessageBox.Show(CONSTANTS.Err_String[resPack.Flag], "알림"); return; } selectedNode.Nodes.Add(input); // 좌측 TreeView에 하위 노드추가 lbl_State.Text = string.Format("새 폴더 : {0}", input); stream.Close(); client.Close(); RefreshList(selectedPath); // ListView 새로고침 }