예제 #1
0
        /// <summary>
        /// プロジェクト・設定データの読み込み
        /// master: true ... 設定データ, master: false ... プロジェクトデータ
        /// </summary>
        /// <param name="projectPath">プロジェクトファイル又は設定ファイルのパス</param>
        /// <param name="master">設定データか、プロジェクトデータか</param>
        /// <returns>成功したかどうか</returns>
        private bool loadSettingsFile(string projectPath, bool master)
        {
            bool success = false;

            Forms.LoadingForm lf = new Forms.LoadingForm();
            lf.ExitFlag = false;
            lf.percentProgressBar.Maximum = 4;
            lf.percentProgressBar.Value   = 1;
            lf.Path_label.Text            = "プロジェクトを初期化しています...";
            lf.Show();
            Enabled = false;
            collectSettingsData();
            Application.DoEvents();
            lf.percentProgressBar.Value += 1;

            lf.Path_label.Text           = "プロジェクトファイルを読み込んでいます...";
            success                      = readSettingsFile(projectPath, master);
            lf.percentProgressBar.Value += 1;
            if (success)
            {
                Application.DoEvents();
                lf.Path_label.Text = "プロジェクトファイルを適用しています...";
                applySettings();
                lf.percentProgressBar.Value += 1;
            }

            lf.ExitFlag = true;
            lf.Close();
            Enabled = true;
            TopMost = true;
            TopMost = false;
            return(success);
        }
예제 #2
0
        /// <summary>
        /// ファイル・フォルダリストにファイル・フォルダを追加する
        /// </summary>
        /// <param name="fileListTmp">ファイルリスト</param>
        public void AddFileList(string[] fileListTmp)
        {
            // ファイルリストの重複を削除
            string[] fileList = new List <string>(fileListTmp).Distinct().ToArray();
            // 読み込み中ウィンドウフォームの作成・初期化
            LoadingForm lf = new LoadingForm();

            lf.Path_label.Text = "";
            lf.Show();
            lf.percentProgressBar.Maximum = fileList.Length;
            lf.Text = "ファイル・フォルダを追加しています...";
            lf.percentProgressBar.Value = 0;

            // ファイルリストの更新を止める
            fileList_listView.BeginUpdate();
            foreach (string filePath in fileList)
            {
                Application.DoEvents();
                lf.percentProgressBar.Value += 1;
                lf.Path_label.Text           = "[" + lf.percentProgressBar.Value.ToString() + "/" + fileList.Length.ToString() + "]: " + filePath;
                // 読み込み中ウィンドウが閉じられれば、中断する
                if (!lf.Visible)
                {
                    break;
                }
                // ファイル・フォルダリストに重複があれば追加しない
                if (ContainFileList(filePath))
                {
                    continue;
                }
                try
                {
                    // ファイル処理
                    if (File.Exists(filePath))
                    {
                        FileInfo fi       = new FileInfo(filePath);
                        string[] itemList = { fi.Name + " (.ffc)", fi.LastAccessTime.ToString(), calcBytesToKB(fi.Length) + " KB", filePath };
                        fileList_listView.Items.Add(new ListViewItem(itemList, 0));
                    }
                    // フォルダ処理
                    else if (Directory.Exists(filePath))
                    {
                        DirectoryInfo di          = new DirectoryInfo(filePath);
                        string        folderBytes = "0 KB (アクセスエラー)";
                        try
                        {
                            // アクセス権限で計算できないときもある
                            folderBytes = calcBytesToKB(di.EnumerateFiles("*.*", SearchOption.AllDirectories).Sum(fi => fi.Length)) + " KB";
                        } catch {  }
                        string[] itemList = { di.Name, di.CreationTime.ToString(), folderBytes, filePath };
                        fileList_listView.Items.Add(new ListViewItem(itemList, 1));
                    }
                    else if (IsSafePath(filePath, false))
                    {
                        string[] itemList = { Path.GetFileName(filePath), DateTime.Now.ToString(), "0 KB", filePath };
                        fileList_listView.Items.Add(new ListViewItem(itemList));
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("'" + filePath + "' を追加できませんでした:\r\n" + ex.Message, "エラー", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            // ファイルリストの更新を再開
            fileList_listView.EndUpdate();
            // 読み込みウィンドウを閉じる
            lf.Close();
            lf.Dispose();
            lf = null;
        }