//それぞれのボタンを押したときの処理 public void btn_Click(object sender, RoutedEventArgs e) { //senderからクリックしたユーザ名を取得 string userName = sender.ToString(); userName = userName.Replace("System.Windows.Controls.Button: ", ""); int x = userName.IndexOf("."); userName = userName.Remove(0, x + 1); string[] files; //ファイル共有するならこっち if (Directory.Exists(GetUniversalName(@"\\MCDYNA20\ContentsData"))) { string searchDirectory = @"\\MCDYNA20\ContentsData\Annotation\" + userName + "\\" + epubFileName.Replace(".epub", ""); string unc_path = GetUniversalName(searchDirectory); //ユーザフォルダ内に内にあるすべてのキャプチャ検索 files = System.IO.Directory.GetFiles(unc_path, "*", SearchOption.TopDirectoryOnly); } //しないならこっち else { string searchDirectory = epubDirectory.Replace("epub", "Annotation") + "\\" + userName + "\\" + epubFileName.Replace(".epub", ""); //ユーザフォルダ内に内にあるすべてのキャプチャ検索 files = System.IO.Directory.GetFiles(searchDirectory, "*", SearchOption.TopDirectoryOnly); } for (int i = 0; i < files.Length; i++) { // 配列を拡張 Array.Resize(ref captureOwnerId, i + 1); captureOwnerId[i] = userName; } PNGSelectAnnotationWindow pslaw = new PNGSelectAnnotationWindow(); pslaw.Show(); pslaw.init(files, captureOwnerId, false); this.Close(); }
//要素(あるいはページ)ごとにすべてのユーザのキャプチャを表示させる public void elementButton_Click(object sender, RoutedEventArgs e) { //キャプチャのリスト(files)のそれぞれの書き主のID string[] captureOwnerId = new string[1]; isElement = true; string[] directories; string[] files = new string[1]; int i = 0; //ファイル共有するならこっち if (Directory.Exists(GetUniversalName(@"\\MCDYNA20\ContentsData"))) { string searchDirectory = @"\\MCDYNA20\ContentsData\Annotation"; string unc_path = GetUniversalName(searchDirectory); try { //Annotationフォルダ内に内にあるユーザのディレクトリを検索 directories = System.IO.Directory.GetDirectories(unc_path, "*", SearchOption.TopDirectoryOnly); //それぞれのユーザのディレクトリから、対象の要素(あるいはページ)に対するキャプチャを探す foreach (string d in directories) { //現在の要素(あるいはページ)に対する全ユーザのキャプチャを検索 string[] captures = System.IO.Directory.GetFiles(d + "\\" + epubFileName.Replace(".epub", ""), imageFileName + "*" + ".png", System.IO.SearchOption.TopDirectoryOnly); foreach (string c in captures) { // 配列を拡張 Array.Resize(ref files, i + 1); files[i] = c; // 配列を拡張 Array.Resize(ref captureOwnerId, i + 1); captureOwnerId[i] = d.Replace(unc_path + "\\", ""); i++; } } } catch { MessageBox.Show("ファイルがありません。"); return; } } //しないならこっち else { string searchDirectory = epubDirectory.Replace("epub", "Annotation"); try { //Annotationフォルダ内に内にあるユーザのディレクトリを検索 directories = System.IO.Directory.GetDirectories(searchDirectory, "*", SearchOption.TopDirectoryOnly); //それぞれのユーザのディレクトリから、対象の要素(あるいはページ)に対するキャプチャを探す foreach (string d in directories) { //現在の要素(あるいはページ)に対する全ユーザのキャプチャを検索 string[] captures = System.IO.Directory.GetFiles(d + "\\" + epubFileName.Replace(".epub", ""), imageFileName + "*" + ".png", System.IO.SearchOption.TopDirectoryOnly); foreach (string c in captures) { // 配列を拡張 Array.Resize(ref files, i + 1); files[i] = c; // 配列を拡張 Array.Resize(ref captureOwnerId, i + 1); captureOwnerId[i] = d.Replace(searchDirectory + "\\", ""); i++; } } } catch { MessageBox.Show("ファイルがありません"); return; } } PNGSelectAnnotationWindow pslaw = new PNGSelectAnnotationWindow(); pslaw.Owner = this; pslaw.Show(); pslaw.init(files, captureOwnerId, isElement); }