private void delete_button_Click(object sender, RoutedEventArgs e) //削除ボタン { int selectedIndex = files_listview.SelectedIndex; if (selectedIndex < 0) { AleartWindow aleartWindow = new AleartWindow { windowName = "Aleart", aleartDetail = "Please select arbitrary file." }; aleartWindow.ShowDialog(); return; } string deleteWavDir = NKernel.observeDirectory + @"\" + NKernel.fileName[selectedIndex] + ".wav"; string deleteTxtDir = NKernel.observeDirectory + @"\" + NKernel.fileName[selectedIndex] + ".txt"; File.Delete(deleteWavDir); File.Delete(deleteTxtDir); for (int i = selectedIndex + 1; i < NKernel.fileName.Count; i++) { RenameFile(i, "wav", true); RenameFile(i, "txt", true); } NKernel.fileName.Clear(); List_init(); }
private void sortDown_button_Click(object sender, RoutedEventArgs e) //下ボタン { int selectedIndex = files_listview.SelectedIndex; if (selectedIndex < 0) { AleartWindow aleartWindow = new AleartWindow { windowName = "Aleart", aleartDetail = "Please select arbitrary file." }; aleartWindow.ShowDialog(); return; } if (selectedIndex < files_listview.Items.Count - 1) //一番下を選択中は無効 { // ファイル名変更 RenameFile(selectedIndex + 1, "wav", true); RenameFile(selectedIndex + 1, "txt", true); RenameFile(selectedIndex, "wav", false); RenameFile(selectedIndex, "txt", false); // DB入れ替え処理 NKernel.fileName.Clear(); List_init(); } }
/// <summary> /// ファイル名を変更します /// </summary> /// <param name="index">NKernel.fileName のインデックス</param> /// <param name="extension">拡張子</param> /// <param name="isUp">上に移動か</param> public void RenameFile(int index, string extension, bool isUp) { string _upData = NKernel.fileName[index]; string _upDir = NKernel.observeDirectory + @"\" + _upData + "." + extension; string _upedDir; if (isUp) { _upedDir = NKernel.observeDirectory + @"\" + index.ToString("000") + _upData.Remove(0, 3) + "." + extension; } else { _upedDir = NKernel.observeDirectory + @"\" + (index + 2).ToString("000") + _upData.Remove(0, 3) + "." + extension; } try { File.Move(_upDir, _upedDir); } catch { AleartWindow aleartWindow = new AleartWindow { windowName = "Error", aleartDetail = "The required files could not be found." }; aleartWindow.ShowDialog(); this.Close(); //重大なエラー } }
private void sortSelect_button_Click(object sender, RoutedEventArgs e) //ファイル移動ボタン { int selectedIndex = files_listview.SelectedIndex; if (selectedIndex < 0) { AleartWindow aleartWindow = new AleartWindow { windowName = "Aleart", aleartDetail = "Please select arbitrary file." }; aleartWindow.ShowDialog(); return; } FileMove fileMove = new FileMove(); fileMove.maxIndex = NKernel.fileName.Count - 1; fileMove.selectedIndex = selectedIndex; fileMove.ShowDialog(); if (fileMove.trueClose) //ウィンドウが正しく閉じられた場合 { int toMoveIndex = fileMove.moveNum; if (toMoveIndex < selectedIndex) { for (int i = selectedIndex; i > toMoveIndex - 1; i--) { RenameFile(i - 1, "wav", false); RenameFile(i - 1, "txt", false); } File.Move(NKernel.observeDirectory + @"\" + NKernel.fileName[selectedIndex] + ".wav", NKernel.observeDirectory + @"\" + toMoveIndex.ToString("000") + NKernel.fileName[selectedIndex].Remove(0, 3) + ".wav"); File.Move(NKernel.observeDirectory + @"\" + NKernel.fileName[selectedIndex] + ".txt", NKernel.observeDirectory + @"\" + toMoveIndex.ToString("000") + NKernel.fileName[selectedIndex].Remove(0, 3) + ".txt"); } else if (toMoveIndex > selectedIndex) { for (int i = selectedIndex; i < toMoveIndex - 1; i++) { RenameFile(i + 1, "wav", true); RenameFile(i + 1, "txt", true); } File.Move(NKernel.observeDirectory + @"\" + NKernel.fileName[selectedIndex] + ".wav", NKernel.observeDirectory + @"\" + toMoveIndex.ToString("000") + NKernel.fileName[selectedIndex].Remove(0, 3) + ".wav"); File.Move(NKernel.observeDirectory + @"\" + NKernel.fileName[selectedIndex] + ".txt", NKernel.observeDirectory + @"\" + toMoveIndex.ToString("000") + NKernel.fileName[selectedIndex].Remove(0, 3) + ".txt"); } NKernel.fileName.Clear(); List_init(); } }
/// <summary> /// ファイル変更トリガー処理 /// </summary> /// <param name="source"></param> /// <param name="e"></param> public void FileUpdata(object source, FileSystemEventArgs e) { switch (e.ChangeType) { case WatcherChangeTypes.Created: string _fileName = e.FullPath.Replace(NKernel.observeDirectory + @"\", ""); if (_fileName == "nalice.txt") { string textDetail = ReadTextFile(e.FullPath); string[] noChar = { @"\", "/", ":", "*", "?", "\"", "<", ">", "|", Environment.NewLine }; foreach (var i in noChar) { textDetail = textDetail.Replace(i, "+"); Console.WriteLine("Replace : " + i + textDetail); } Console.WriteLine("TEXT : " + textDetail); string newFileName = (NKernel.fileName.Count + 1).ToString("000") + "_" + textDetail; string newWavFileDirectory = NKernel.observeDirectory + @"\" + newFileName + ".wav"; string newTxtFileDirectory = NKernel.observeDirectory + @"\" + newFileName + ".txt"; bool j = true; int k = 0; while (j) { try { File.Move(e.FullPath.Replace(".txt", ".wav"), newWavFileDirectory); File.Move(e.FullPath, newTxtFileDirectory); j = false; } catch { } k++; if (k > 10000) { AleartWindow aleartWindow = new AleartWindow { windowName = "Error", aleartDetail = "Critical error about file renaming." }; aleartWindow.ShowDialog(); this.Close(); //重大なエラー } } NKernel.fileName.Add(newFileName); this.Dispatcher.Invoke((Action)(() => { files_listview.Items.Add(newFileName); })); } Console.WriteLine($"NEW CREATION: {e.FullPath}"); break; case WatcherChangeTypes.Deleted: Console.WriteLine($"DELETE: {e.FullPath}"); break; case WatcherChangeTypes.Changed: Console.WriteLine($"CHANGE: {e.FullPath}"); break; case WatcherChangeTypes.Renamed: var renameEventArgs = e as RenamedEventArgs; Console.WriteLine($"RENAME: {renameEventArgs.OldFullPath} => {renameEventArgs.FullPath}"); break; } }