Exemple #1
0
        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();
        }
Exemple #2
0
        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 새로고침
        }