Bladeren bron

其他-补充提交

ZhouJieSheng 2 jaren geleden
bovenliggende
commit
ab19a8feed
2 gewijzigde bestanden met toevoegingen van 69 en 0 verwijderingen
  1. BIN
      PDF Office/Resources/PromotionIcon/black_pdfreaderpro_home_en.png
  2. 69 0
      PDF Office/Settings.cs

BIN
PDF Office/Resources/PromotionIcon/black_pdfreaderpro_home_en.png


+ 69 - 0
PDF Office/Settings.cs

@@ -0,0 +1,69 @@
+using System.Configuration;
+using System.IO;
+
+namespace PDF_Office.Properties {
+    
+    
+    // 通过此类可以处理设置类的特定事件: 
+    //  在更改某个设置的值之前将引发 SettingChanging 事件。
+    //  在更改某个设置的值之后将引发 PropertyChanged 事件。
+    //  在加载设置值之后将引发 SettingsLoaded 事件。
+    //  在保存设置值之前将引发 SettingsSaving 事件。
+    internal sealed partial class Settings {
+        
+        public Settings() {
+            // // 若要为保存和更改设置添加事件处理程序,请取消注释下列行: 
+            //
+            // this.SettingChanging += this.SettingChangingEventHandler;
+            //
+             this.SettingsSaving += this.SettingsSavingEventHandler;
+            //
+        }
+        
+        private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
+            // 在此处添加用于处理 SettingChangingEvent 事件的代码。
+        }
+        
+        private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
+            // 在此处添加用于处理 SettingsSaving 事件的代码。
+            try
+            {
+                //判断配置文件是否可写
+                var filepath = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
+                if (isFileLocked(filepath))
+                {
+                    e.Cancel = true;
+                }
+            }
+            catch
+            {
+            }
+        }
+
+        /// <summary>
+        /// 判断文件是否被占用
+        /// </summary>
+        /// <param name="pathName"></param>
+        /// <returns></returns>
+        public static bool isFileLocked(string pathName)
+        {
+            try
+            {
+                if (!File.Exists(pathName))
+                {
+                    return false;
+                }
+
+                using (var fs = new FileStream(pathName, FileMode.Open, FileAccess.Read, FileShare.None))
+                {
+                    fs.Close();
+                }
+            }
+            catch
+            {
+                return true;
+            }
+            return false;
+        }
+    }
+}