private async void Save_B_Click(object sender, RoutedEventArgs e) { if (IsProcessing) { return; } if (Project_Name_T.Text == "") { Message_T.Text = "プロジェクト名が設定されていません。"; return; } try { Directory.CreateDirectory(Voice_Set.Special_Path + "/Temp/" + Project_Name_T.Text); Directory.Delete(Voice_Set.Special_Path + "/Temp", true); if (Project_Name_T.Text.Contains("/")) { Message_T.Text = "プロジェクト名に不適切な文字が含まれています。"; return; } } catch { Message_T.Text = "プロジェクト名に不適切な文字が含まれています。"; return; } if (Project_Name_T.Text.CountOf(" ") > 0) { Message_T.Text = "プロジェクト名に空白を2つ続けて付けることはできません。"; return; } if (Voice_Add_L.Items.Count <= 0) { Message_T.Text = "最低1つは音声ファイルが必要です。"; return; } if (Voice_Set.FTPClient.Directory_Exist("/WoTB_Voice_Mod/Voice_Online/" + Project_Name_T.Text)) { Message_T.Text = "同名のプロジェクトが存在するか、別の目的で使用されています。"; return; } Server_Create_Config Conf = new Server_Create_Config { IsEnableR18 = R_18_C.IsChecked.Value, IsEnablePassword = Set_Password_C.IsChecked.Value, Explanation = Explanation_T.Text, Master_User_Name = Voice_Set.UserName }; if (Set_Password_C.IsChecked.Value) { Conf.Password = Set_Password_T.Text; } IsProcessing = true; XmlSerializer xmlSerializer = new XmlSerializer(typeof(Server_Create_Config)); StreamWriter streamWriter = new StreamWriter(Voice_Set.Special_Path + "/Temp_Create_Server.dat", false, new UTF8Encoding(false)); xmlSerializer.Serialize(streamWriter, Conf); streamWriter.Close(); Voice_Set.FTPClient.Directory_Create("/WoTB_Voice_Mod/Voice_Online/" + Project_Name_T.Text + "/Voices"); Voice_Set.FTPClient.UploadFile(Voice_Set.Special_Path + "/Temp_Create_Server.dat", "/WoTB_Voice_Mod/Voice_Online/" + Project_Name_T.Text + "/Server_Config.dat"); File.Delete(Voice_Set.Special_Path + "/Temp_Create_Server.dat"); StreamWriter stw = File.CreateText(Voice_Set.Special_Path + "/Temp_Change_Names.dat"); stw.WriteLine("ここにファイルの変更を保存します。"); stw.Close(); Voice_Set.FTPClient.UploadFile(Voice_Set.Special_Path + "/Temp_Change_Names.dat", "/WoTB_Voice_Mod/Voice_Online/" + Project_Name_T.Text + "/Change_Names.dat"); File.Delete(Voice_Set.Special_Path + "/Temp_Change_Names.dat"); StreamWriter Chat_Create = File.CreateText(Voice_Set.Special_Path + "/Temp_Chat_Create.dat"); Chat_Create.WriteLine(Voice_Set.UserName + "がプロジェクトを作成しました。"); Chat_Create.Close(); Voice_Set.FTPClient.UploadFile(Voice_Set.Special_Path + "/Temp_Chat_Create.dat", "/WoTB_Voice_Mod/Voice_Online/" + Project_Name_T.Text + "/Chat.dat"); File.Delete(Voice_Set.Special_Path + "/Temp_Chat_Create.dat"); Message_T.Text = "サーバー内にプロジェクトを作成しています..."; await Task.Delay(50); Process_P.Value = 0; int Count_Max = Voice_Add_Files.Count; Process_P.Maximum = Count_Max; Process_T.Text = "0/" + Count_Max; Process_P.Visibility = Visibility.Visible; Process_T.Visibility = Visibility.Visible; await Task.Delay(50); //Upload_Wait(Count_Max); Message_T.Text = "音声ファイルをアップロードしています。音声の数や通信環境によって時間がかかる場合があります。"; bool IsOK = await Upload_File_Multithread(); if (!IsOK) { Process_P.Visibility = Visibility.Hidden; Process_T.Visibility = Visibility.Hidden; Message_Feed_Out("エラーが発生しました。"); return; } Voice_Set.FTPClient.DownloadFile("/WoTB_Voice_Mod/Voice_Online/Server_Names.dat", Voice_Set.Special_Path + "/Server_Names.dat"); StreamWriter stw2 = new StreamWriter(Voice_Set.Special_Path + "/Server_Names.dat", true, Encoding.UTF8); stw2.WriteLine(Project_Name_T.Text + "|" + R_18_C.IsChecked.Value + "|" + Set_Password_C.IsChecked.Value); stw2.Close(); Voice_Set.FTPClient.UploadFile(Voice_Set.Special_Path + "/Server_Names.dat", "/WoTB_Voice_Mod/Voice_Online/Server_Names.dat"); Voice_Add_L.Items.Clear(); R_18_C.IsChecked = false; Set_Password_C.IsChecked = false; Project_Name_T.Text = ""; Voice_Select_T.Text = "フォルダパス:"; Set_Password_T.Text = ""; Process_P.Visibility = Visibility.Hidden; Process_T.Visibility = Visibility.Hidden; Message_Feed_Out("プロジェクトを作成しました。"); await Task.Delay(1000); while (Opacity > 0) { Opacity -= Sub_Code.Window_Feed_Time; await Task.Delay(1000 / 60); } Visibility = Visibility.Hidden; IsProcessing = false; }
private async void Save_B_Click(object sender, RoutedEventArgs e) { if (IsProcessing) { return; } if (Project_Name_T.Text == "") { Message_T.Text = "プロジェクト名が設定されていません。"; return; } try { Directory.CreateDirectory(Special_Path + "/" + Project_Name_T.Text); Directory.Delete(Special_Path + "/" + Project_Name_T.Text); if (Project_Name_T.Text.Contains("/")) { Message_T.Text = "プロジェクト名に不適切な文字が含まれています。"; return; } } catch { Message_T.Text = "プロジェクト名に不適切な文字が含まれています。"; return; } if (Voice_List.Items.Count <= 0) { Message_T.Text = "最低1つは音声ファイルが必要です。"; return; } if (Voice_Set.SRTTbacon_Server_Name != Project_Name_T.Text) { if (Voice_Set.FTPClient.Directory_Exist("/WoTB_Voice_Mod/" + Project_Name_T.Text)) { Message_T.Text = "同名のプロジェクトが存在します。"; return; } } IsProcessing = true; StreamWriter stw1 = File.CreateText(Special_Path + "/Temp_Remove_Files.dat"); foreach (string File_Name in Voices_Remove) { stw1.WriteLine(File_Name); Voice_Set.FTPClient.DeleteFile("/WoTB_Voice_Mod/" + Voice_Set.SRTTbacon_Server_Name + "/Voices/" + File_Name); } stw1.Close(); Voice_Set.FTPClient.UploadFile(Special_Path + "/Temp_Remove_Files.dat", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Remove_Files.dat"); File.Delete(Special_Path + "/Temp_Remove_Files.dat"); StreamWriter stw2 = File.CreateText(Special_Path + "/Temp_Add_Files.dat"); foreach (string File_Name in Voices_Add_FullName) { string Name = Path.GetFileName(File_Name); stw2.WriteLine(Name); Voice_Set.FTPClient.UploadFile(File_Name, "/WoTB_Voice_Mod/" + Voice_Set.SRTTbacon_Server_Name + "/Voices/" + Name); } stw2.Close(); Voice_Set.FTPClient.UploadFile(Special_Path + "/Temp_Add_Files.dat", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Add_Files.dat"); File.Delete(Special_Path + "/Temp_Add_Files.dat"); Server_Create_Config Conf = new Server_Create_Config { IsEnableR18 = R_18_C.IsChecked.Value, IsEnablePassword = Set_Password_C.IsChecked.Value, Explanation = Explanation_T.Text }; if (Set_Password_C.IsChecked.Value) { Conf.Password = Set_Password_T.Text; } XmlSerializer xmlSerializer = new XmlSerializer(typeof(Server_Create_Config)); StreamWriter streamWriter = new StreamWriter(Special_Path + "/Temp_Create_Server.dat", false, new UTF8Encoding(false)); xmlSerializer.Serialize(streamWriter, Conf); streamWriter.Close(); Voice_Set.FTPClient.UploadFile(Special_Path + "/Temp_Create_Server.dat", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Server_Config.dat"); if (Voice_Set.SRTTbacon_Server_Name != Project_Name_T.Text) { Voice_Set.FTPClient.Directory_Move("/WoTB_Voice_Mod/" + Voice_Set.SRTTbacon_Server_Name, "/WoTB_Voice_Mod/" + Project_Name_T.Text, true); } Voice_Set.TCP_Server.Send(Voice_Set.SRTTbacon_Server_Name + "|Change_Configs|" + Project_Name_T.Text); Message_T.Text = "保存しました。"; await Task.Delay(500); while (Opacity > 0) { Opacity -= 0.025; await Task.Delay(1000 / 60); } Visibility = Visibility.Hidden; }
private async void Save_B_Click(object sender, RoutedEventArgs e) { if (IsProcessing) { return; } if (Project_Name_T.Text == "") { Message_T.Text = "プロジェクト名が設定されていません。"; return; } try { Directory.CreateDirectory(Voice_Set.Special_Path + "/Temp/" + Project_Name_T.Text); Directory.Delete(Voice_Set.Special_Path + "/Temp/" + Project_Name_T.Text); if (Project_Name_T.Text.Contains("/")) { Message_T.Text = "プロジェクト名に不適切な文字が含まれています。"; return; } } catch { Message_T.Text = "プロジェクト名に不適切な文字が含まれています。"; return; } if (Project_Name_T.Text.CountOf(" ") > 0) { Message_T.Text = "プロジェクト名に空白を2つ続けて付けることはできません。"; return; } if (Voice_Add_L.Items.Count <= 0) { Message_T.Text = "最低1つは音声ファイルが必要です。"; return; } if (Voice_Set.FTP_Server.DirectoryExists("/WoTB_Voice_Mod/" + Project_Name_T.Text)) { Message_T.Text = "同名のプロジェクトが存在するか、別の目的で使用されています。"; return; } Server_Create_Config Conf = new Server_Create_Config { IsEnableR18 = R_18_C.IsChecked.Value, IsEnablePassword = Set_Password_C.IsChecked.Value, Explanation = Explanation_T.Text, Master_User_Name = Voice_Set.UserName }; if (Set_Password_C.IsChecked.Value) { Conf.Password = Set_Password_T.Text; } XmlSerializer xmlSerializer = new XmlSerializer(typeof(Server_Create_Config)); StreamWriter streamWriter = new StreamWriter(Voice_Set.Special_Path + "/Temp_Create_Server.dat", false, new UTF8Encoding(false)); xmlSerializer.Serialize(streamWriter, Conf); streamWriter.Close(); Voice_Set.FTP_Server.CreateDirectory("/WoTB_Voice_Mod/" + Project_Name_T.Text, true); Voice_Set.FTP_Server.UploadFile(Voice_Set.Special_Path + "/Temp_Create_Server.dat", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Server_Config.dat"); File.Delete(Voice_Set.Special_Path + "/Temp_Create_Server.dat"); StreamWriter stw = File.CreateText(Voice_Set.Special_Path + "/Temp_Change_Names.dat"); stw.WriteLine("ここにファイルの変更を保存します。"); stw.Close(); Voice_Set.FTP_Server.UploadFile(Voice_Set.Special_Path + "/Temp_Change_Names.dat", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Change_Names.dat"); File.Delete(Voice_Set.Special_Path + "/Temp_Change_Names.dat"); StreamWriter Chat_Create = File.CreateText(Voice_Set.Special_Path + "/Temp_Chat_Create.dat"); Chat_Create.WriteLine(Voice_Set.UserName + "がプロジェクトを作成しました。"); Chat_Create.Close(); Voice_Set.FTP_Server.UploadFile(Voice_Set.Special_Path + "/Temp_Chat_Create.dat", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Chat.dat"); File.Delete(Voice_Set.Special_Path + "/Temp_Chat_Create.dat"); Message_T.Text = "サーバー内にプロジェクトを作成しています..."; await Task.Delay(50); string[] Upload_Files = Directory.GetFiles(Voice_Set.Special_Path + "/Server/Voices", "*", SearchOption.TopDirectoryOnly); Process_P.Value = 0; Voice_Set.FTP_Server.CreateDirectory("/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Voices"); int Count_Max = Upload_Files.Length; int Count_Now = 0; Process_P.Maximum = Upload_Files.Length; Process_T.Text = "0/" + Upload_Files.Length; Process_P.Visibility = Visibility.Visible; Process_T.Visibility = Visibility.Visible; foreach (string File_Name in Upload_Files) { Voice_Set.FTP_Server.UploadFile(File_Name, "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Voices/" + Path.GetFileName(File_Name)); Count_Now++; await Task.Delay(1); Process_P.Value = Count_Now; Process_T.Text = Count_Now + "/" + Count_Max; } //Voice_Set.FTP_Server.UploadDirectory(Special_Path + "/Server/Voices", "/WoTB_Voice_Mod/" + Project_Name_T.Text + "/Voices"); Voice_Set.FTP_Server.DownloadFile(Voice_Set.Special_Path + "/Server_Names.dat", "/WoTB_Voice_Mod/Server_Names.dat"); StreamWriter stw2 = new StreamWriter(Voice_Set.Special_Path + "/Server_Names.dat", true, Encoding.UTF8); stw2.WriteLine(Project_Name_T.Text); stw2.Close(); Directory.CreateDirectory(Voice_Set.Special_Path + "/Server/" + Project_Name_T.Text); Directory.Move(Voice_Set.Special_Path + "/Server/Voices", Voice_Set.Special_Path + "/Server/" + Project_Name_T.Text + "/Voices"); Message_T.Text = "プロジェクトを作成しました。適応します。"; Voice_Set.FTP_Server.UploadFile(Voice_Set.Special_Path + "/Server_Names.dat", "/WoTB_Voice_Mod/Server_Names.dat"); Message_T.Text = ""; Voice_Add_L.Items.Clear(); R_18_C.IsChecked = false; Set_Password_C.IsChecked = false; Project_Name_T.Text = ""; Voice_Select_T.Text = "フォルダパス:"; Set_Password_T.Text = ""; Process_P.Visibility = Visibility.Hidden; Process_T.Visibility = Visibility.Hidden; await Task.Delay(1000); while (Message_T.Opacity > 0) { Message_T.Opacity -= 0.025; await Task.Delay(1000 / 60); } Message_T.Text = ""; while (Opacity > 0) { Opacity -= 0.025; await Task.Delay(1000 / 60); } Visibility = Visibility.Hidden; }