فهرست منبع

修复配置文件生成路径问题,增加.iml ._ .Ds_Store _MACOSX 文件和文件夹批量删除

Ricky 3 سال پیش
والد
کامیت
51e90fb3f1

+ 1 - 1
bin/package.bat

@@ -5,7 +5,7 @@ echo.
 
 %~d0
 cd %~dp0
-call pyinstaller --add-data="../img;img" --add-data="../libs;libs" --version-file ../conf/app_version_info.txt -F -w -n 若依框架修改器V3-20210706 -i ../img/favicon.ico  ../run.py
+call pyinstaller --add-data="../img;img" --add-data="../libs;libs" --version-file ../conf/app_version_info.txt -F -w -n 若依框架修改器V3-20210930 -i ../img/favicon.ico  ../run.py
 
 echo.
 echo [信息] 打包完成。

+ 4 - 4
conf/app_version_info.txt

@@ -6,8 +6,8 @@ VSVersionInfo(
   ffi=FixedFileInfo(
     # filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
     # Set not needed items to zero 0.
-    filevers=(4, 6, 2, 20210706),
-    prodvers=(4, 6, 2, 20210706),
+    filevers=(4, 6, 3, 20210930),
+    prodvers=(4, 6, 3, 20210930),
     # Contains a bitmask that specifies the valid bits 'flags'r
     mask=0x3f,
     # Contains a bitmask that specifies the Boolean attributes of the file.
@@ -31,10 +31,10 @@ VSVersionInfo(
         u'080404b0',
         [StringStruct(u'CompanyName', u'个人'),
         StringStruct(u'FileDescription', u'若依框架修改器'),
-        StringStruct(u'FileVersion', u'4.6.2.20210706'),
+        StringStruct(u'FileVersion', u'4.6.3.20210930'),
         StringStruct(u'LegalCopyright', u'Copyright (C) 2020-2021 Ricky. All Rights Reserved'),
         StringStruct(u'ProductName', u'常用工具'),
-        StringStruct(u'ProductVersion', u'4.6.2')])
+        StringStruct(u'ProductVersion', u'4.6.3')])
       ]), 
     VarFileInfo([VarStruct(u'Translation', [2052, 1200])])
   ]

+ 2 - 2
constant/constant.py

@@ -6,8 +6,8 @@
 """
 系统常量
 """
-APP_VERSION_INT = 320210706
-APP_VERSION_STRING = '4.6.2.20210706'
+APP_VERSION_INT = 320210930
+APP_VERSION_STRING = '4.6.3.20210930'
 PYTHON_VERSION_STRING = '3.7.9'
 WXPYTHON_VERSION_STRING = '4.1.0'
 APP_BITMAP_TYPE_ICO = 'img/favicon.ico'

+ 280 - 2
fbp/RuoYi-WxPython-UI.fbp

@@ -16,7 +16,7 @@
         <property name="help_provider">none</property>
         <property name="indent_with_spaces"></property>
         <property name="internationalize">0</property>
-        <property name="name">RuoYi-RPN</property>
+        <property name="name">若依框架修改器</property>
         <property name="namespace"></property>
         <property name="path">.</property>
         <property name="precompiled_header"></property>
@@ -4532,6 +4532,284 @@
                                                 <property name="window_style"></property>
                                             </object>
                                         </object>
+                                        <object class="sizeritem" expanded="0">
+                                            <property name="border">5</property>
+                                            <property name="flag">wxALL</property>
+                                            <property name="proportion">0</property>
+                                            <object class="wxCheckBox" expanded="0">
+                                                <property name="BottomDockable">1</property>
+                                                <property name="LeftDockable">1</property>
+                                                <property name="RightDockable">1</property>
+                                                <property name="TopDockable">1</property>
+                                                <property name="aui_layer"></property>
+                                                <property name="aui_name"></property>
+                                                <property name="aui_position"></property>
+                                                <property name="aui_row"></property>
+                                                <property name="best_size"></property>
+                                                <property name="bg"></property>
+                                                <property name="caption"></property>
+                                                <property name="caption_visible">1</property>
+                                                <property name="center_pane">0</property>
+                                                <property name="checked">1</property>
+                                                <property name="close_button">1</property>
+                                                <property name="context_help"></property>
+                                                <property name="context_menu">1</property>
+                                                <property name="default_pane">0</property>
+                                                <property name="dock">Dock</property>
+                                                <property name="dock_fixed">0</property>
+                                                <property name="docking">Left</property>
+                                                <property name="enabled">1</property>
+                                                <property name="fg"></property>
+                                                <property name="floatable">1</property>
+                                                <property name="font"></property>
+                                                <property name="gripper">0</property>
+                                                <property name="hidden">0</property>
+                                                <property name="id">wxID_ANY</property>
+                                                <property name="label">.iml</property>
+                                                <property name="max_size"></property>
+                                                <property name="maximize_button">0</property>
+                                                <property name="maximum_size"></property>
+                                                <property name="min_size"></property>
+                                                <property name="minimize_button">0</property>
+                                                <property name="minimum_size"></property>
+                                                <property name="moveable">1</property>
+                                                <property name="name">m_check_box_dot_iml</property>
+                                                <property name="pane_border">1</property>
+                                                <property name="pane_position"></property>
+                                                <property name="pane_size"></property>
+                                                <property name="permission">protected</property>
+                                                <property name="pin_button">1</property>
+                                                <property name="pos"></property>
+                                                <property name="resize">Resizable</property>
+                                                <property name="show">1</property>
+                                                <property name="size"></property>
+                                                <property name="style"></property>
+                                                <property name="subclass">; ; forward_declare</property>
+                                                <property name="toolbar_pane">0</property>
+                                                <property name="tooltip"></property>
+                                                <property name="validator_data_type"></property>
+                                                <property name="validator_style">wxFILTER_NONE</property>
+                                                <property name="validator_type">wxDefaultValidator</property>
+                                                <property name="validator_variable"></property>
+                                                <property name="window_extra_style"></property>
+                                                <property name="window_name"></property>
+                                                <property name="window_style"></property>
+                                            </object>
+                                        </object>
+                                    </object>
+                                </object>
+                                <object class="sizeritem" expanded="0">
+                                    <property name="border">5</property>
+                                    <property name="flag">wxSHAPED</property>
+                                    <property name="proportion">0</property>
+                                    <object class="wxBoxSizer" expanded="0">
+                                        <property name="minimum_size"></property>
+                                        <property name="name">b_sizer_select_file_or_dir_column4</property>
+                                        <property name="orient">wxVERTICAL</property>
+                                        <property name="permission">none</property>
+                                        <object class="sizeritem" expanded="0">
+                                            <property name="border">5</property>
+                                            <property name="flag">wxALL</property>
+                                            <property name="proportion">0</property>
+                                            <object class="wxCheckBox" expanded="0">
+                                                <property name="BottomDockable">1</property>
+                                                <property name="LeftDockable">1</property>
+                                                <property name="RightDockable">1</property>
+                                                <property name="TopDockable">1</property>
+                                                <property name="aui_layer"></property>
+                                                <property name="aui_name"></property>
+                                                <property name="aui_position"></property>
+                                                <property name="aui_row"></property>
+                                                <property name="best_size"></property>
+                                                <property name="bg"></property>
+                                                <property name="caption"></property>
+                                                <property name="caption_visible">1</property>
+                                                <property name="center_pane">0</property>
+                                                <property name="checked">0</property>
+                                                <property name="close_button">1</property>
+                                                <property name="context_help"></property>
+                                                <property name="context_menu">1</property>
+                                                <property name="default_pane">0</property>
+                                                <property name="dock">Dock</property>
+                                                <property name="dock_fixed">0</property>
+                                                <property name="docking">Left</property>
+                                                <property name="enabled">1</property>
+                                                <property name="fg"></property>
+                                                <property name="floatable">1</property>
+                                                <property name="font"></property>
+                                                <property name="gripper">0</property>
+                                                <property name="hidden">0</property>
+                                                <property name="id">wxID_ANY</property>
+                                                <property name="label">._</property>
+                                                <property name="max_size"></property>
+                                                <property name="maximize_button">0</property>
+                                                <property name="maximum_size"></property>
+                                                <property name="min_size"></property>
+                                                <property name="minimize_button">0</property>
+                                                <property name="minimum_size"></property>
+                                                <property name="moveable">1</property>
+                                                <property name="name">m_check_box_mac_dot_</property>
+                                                <property name="pane_border">1</property>
+                                                <property name="pane_position"></property>
+                                                <property name="pane_size"></property>
+                                                <property name="permission">protected</property>
+                                                <property name="pin_button">1</property>
+                                                <property name="pos"></property>
+                                                <property name="resize">Resizable</property>
+                                                <property name="show">1</property>
+                                                <property name="size"></property>
+                                                <property name="style"></property>
+                                                <property name="subclass">; ; forward_declare</property>
+                                                <property name="toolbar_pane">0</property>
+                                                <property name="tooltip">Mac电脑生成的._开头的文件</property>
+                                                <property name="validator_data_type"></property>
+                                                <property name="validator_style">wxFILTER_NONE</property>
+                                                <property name="validator_type">wxDefaultValidator</property>
+                                                <property name="validator_variable"></property>
+                                                <property name="window_extra_style"></property>
+                                                <property name="window_name"></property>
+                                                <property name="window_style"></property>
+                                            </object>
+                                        </object>
+                                        <object class="sizeritem" expanded="0">
+                                            <property name="border">5</property>
+                                            <property name="flag">wxALL</property>
+                                            <property name="proportion">0</property>
+                                            <object class="wxCheckBox" expanded="0">
+                                                <property name="BottomDockable">1</property>
+                                                <property name="LeftDockable">1</property>
+                                                <property name="RightDockable">1</property>
+                                                <property name="TopDockable">1</property>
+                                                <property name="aui_layer"></property>
+                                                <property name="aui_name"></property>
+                                                <property name="aui_position"></property>
+                                                <property name="aui_row"></property>
+                                                <property name="best_size"></property>
+                                                <property name="bg"></property>
+                                                <property name="caption"></property>
+                                                <property name="caption_visible">1</property>
+                                                <property name="center_pane">0</property>
+                                                <property name="checked">0</property>
+                                                <property name="close_button">1</property>
+                                                <property name="context_help"></property>
+                                                <property name="context_menu">1</property>
+                                                <property name="default_pane">0</property>
+                                                <property name="dock">Dock</property>
+                                                <property name="dock_fixed">0</property>
+                                                <property name="docking">Left</property>
+                                                <property name="enabled">1</property>
+                                                <property name="fg"></property>
+                                                <property name="floatable">1</property>
+                                                <property name="font"></property>
+                                                <property name="gripper">0</property>
+                                                <property name="hidden">0</property>
+                                                <property name="id">wxID_ANY</property>
+                                                <property name="label">.DS_Store</property>
+                                                <property name="max_size"></property>
+                                                <property name="maximize_button">0</property>
+                                                <property name="maximum_size"></property>
+                                                <property name="min_size"></property>
+                                                <property name="minimize_button">0</property>
+                                                <property name="minimum_size"></property>
+                                                <property name="moveable">1</property>
+                                                <property name="name">m_check_box_mac_dot_DS_Store</property>
+                                                <property name="pane_border">1</property>
+                                                <property name="pane_position"></property>
+                                                <property name="pane_size"></property>
+                                                <property name="permission">protected</property>
+                                                <property name="pin_button">1</property>
+                                                <property name="pos"></property>
+                                                <property name="resize">Resizable</property>
+                                                <property name="show">1</property>
+                                                <property name="size"></property>
+                                                <property name="style"></property>
+                                                <property name="subclass">; ; forward_declare</property>
+                                                <property name="toolbar_pane">0</property>
+                                                <property name="tooltip">Mac电脑生成的.DS_Store文件</property>
+                                                <property name="validator_data_type"></property>
+                                                <property name="validator_style">wxFILTER_NONE</property>
+                                                <property name="validator_type">wxDefaultValidator</property>
+                                                <property name="validator_variable"></property>
+                                                <property name="window_extra_style"></property>
+                                                <property name="window_name"></property>
+                                                <property name="window_style"></property>
+                                            </object>
+                                        </object>
+                                    </object>
+                                </object>
+                                <object class="sizeritem" expanded="0">
+                                    <property name="border">5</property>
+                                    <property name="flag">wxSHAPED</property>
+                                    <property name="proportion">0</property>
+                                    <object class="wxBoxSizer" expanded="0">
+                                        <property name="minimum_size"></property>
+                                        <property name="name">b_sizer_select_file_or_dir_column5</property>
+                                        <property name="orient">wxVERTICAL</property>
+                                        <property name="permission">none</property>
+                                        <object class="sizeritem" expanded="0">
+                                            <property name="border">5</property>
+                                            <property name="flag">wxALL</property>
+                                            <property name="proportion">0</property>
+                                            <object class="wxCheckBox" expanded="0">
+                                                <property name="BottomDockable">1</property>
+                                                <property name="LeftDockable">1</property>
+                                                <property name="RightDockable">1</property>
+                                                <property name="TopDockable">1</property>
+                                                <property name="aui_layer"></property>
+                                                <property name="aui_name"></property>
+                                                <property name="aui_position"></property>
+                                                <property name="aui_row"></property>
+                                                <property name="best_size"></property>
+                                                <property name="bg"></property>
+                                                <property name="caption"></property>
+                                                <property name="caption_visible">1</property>
+                                                <property name="center_pane">0</property>
+                                                <property name="checked">0</property>
+                                                <property name="close_button">1</property>
+                                                <property name="context_help"></property>
+                                                <property name="context_menu">1</property>
+                                                <property name="default_pane">0</property>
+                                                <property name="dock">Dock</property>
+                                                <property name="dock_fixed">0</property>
+                                                <property name="docking">Left</property>
+                                                <property name="enabled">1</property>
+                                                <property name="fg"></property>
+                                                <property name="floatable">1</property>
+                                                <property name="font"></property>
+                                                <property name="gripper">0</property>
+                                                <property name="hidden">0</property>
+                                                <property name="id">wxID_ANY</property>
+                                                <property name="label">__MACOSX</property>
+                                                <property name="max_size"></property>
+                                                <property name="maximize_button">0</property>
+                                                <property name="maximum_size"></property>
+                                                <property name="min_size"></property>
+                                                <property name="minimize_button">0</property>
+                                                <property name="minimum_size"></property>
+                                                <property name="moveable">1</property>
+                                                <property name="name">m_check_box_mac_MACOSX</property>
+                                                <property name="pane_border">1</property>
+                                                <property name="pane_position"></property>
+                                                <property name="pane_size"></property>
+                                                <property name="permission">protected</property>
+                                                <property name="pin_button">1</property>
+                                                <property name="pos"></property>
+                                                <property name="resize">Resizable</property>
+                                                <property name="show">1</property>
+                                                <property name="size"></property>
+                                                <property name="style"></property>
+                                                <property name="subclass">; ; forward_declare</property>
+                                                <property name="toolbar_pane">0</property>
+                                                <property name="tooltip">Mac电脑生成的__MACOSX文件夹</property>
+                                                <property name="validator_data_type"></property>
+                                                <property name="validator_style">wxFILTER_NONE</property>
+                                                <property name="validator_type">wxDefaultValidator</property>
+                                                <property name="validator_variable"></property>
+                                                <property name="window_extra_style"></property>
+                                                <property name="window_name"></property>
+                                                <property name="window_style"></property>
+                                            </object>
+                                        </object>
                                         <object class="sizeritem" expanded="0">
                                             <property name="border">5</property>
                                             <property name="flag">wxALL</property>
@@ -4586,7 +4864,7 @@
                                                 <property name="style"></property>
                                                 <property name="subclass">; ; forward_declare</property>
                                                 <property name="toolbar_pane">0</property>
-                                                <property name="tooltip"></property>
+                                                <property name="tooltip">前端node产生的编译文件</property>
                                                 <property name="validator_data_type"></property>
                                                 <property name="validator_style">wxFILTER_NONE</property>
                                                 <property name="validator_type">wxDefaultValidator</property>

+ 2 - 2
ui/druid/druidencrypt.py

@@ -10,7 +10,7 @@ import wx
 import subprocess
 import pyperclip
 import ui.druid.druid_encrypt_dialog as dialog
-from utils import pathutil
+from utils import path
 
 
 def show_message(message):
@@ -49,7 +49,7 @@ class DruidEncrypt(dialog.DruidEncryptDialog):
             show_message('检查到您电脑上没有安装jdk,请安装jdk并且配置环境变量')
             return
         # 执行秘钥生成的命令
-        jar_file = pathutil.resource_path('libs/jar/druid-1.2.4.jar')
+        jar_file = path.resource_path('libs/jar/druid-1.2.4.jar')
         original_password = self.m_text_ctrl_original_password.GetValue()
         cmd = 'java -cp ' + jar_file + ' com.alibaba.druid.filter.config.ConfigTools ' + original_password
         subp = subprocess.Popen(cmd,

+ 14 - 5
ui/filedel/filedel.py

@@ -10,6 +10,7 @@ import shutil
 import threading
 import ui.filedel.filedel_dialog as dialog
 from loguru import logger
+from pathlib import Path
 
 
 class FileDel(dialog.FileDelDialog):
@@ -45,6 +46,14 @@ class FileDel(dialog.FileDelDialog):
             delfiles.add(self.m_check_box_dot_project.GetLabelText())
         if self.m_check_box_dot_idea.IsChecked():
             delfiles.add(self.m_check_box_dot_idea.GetLabelText())
+        if self.m_check_box_mac_MACOSX.IsChecked():
+            delfiles.add(self.m_check_box_mac_MACOSX.GetLabelText())
+        if self.m_check_box_dot_iml.IsChecked():
+            delfiles.add(self.m_check_box_dot_iml.GetLabelText())
+        if self.m_check_box_mac_dot_.IsChecked():
+            delfiles.add(self.m_check_box_mac_dot_.GetLabelText())
+        if self.m_check_box_mac_dot_DS_Store.IsChecked():
+            delfiles.add(self.m_check_box_mac_dot_DS_Store.GetLabelText())
         if self.m_check_box_node_modules.IsChecked():
             delfiles.add(self.m_check_box_node_modules.GetLabelText())
         for fd in input_file_or_dir.split(';'):
@@ -95,27 +104,27 @@ class FileDel(dialog.FileDelDialog):
         for fn in fns:
             joinpath = os.path.join(dir, fn)
             if os.path.isfile(joinpath):
-                if fn in deltarget or os.path.basename(joinpath) in deltarget:
+                if fn in deltarget or os.path.basename(joinpath) in deltarget or Path(fn).suffix in deltarget:
                     try:
                         os.remove(joinpath)
-                        status = "成功"
+                        status = "成功"
                     except OSError as err:
                         print(err)
                         status = "异常"
                     finally:
                         logger.info('删除文件:{}{}', joinpath, status)
-                        self.show_operate_log('删除文件:' + joinpath + status)
+                        self.show_operate_log('删除文件:-------------\n' + joinpath + '\n【' + status + "】")
             else:
                 if fn in deltarget:
                     try:
                         shutil.rmtree(joinpath)
-                        status = "成功"
+                        status = "成功"
                     except OSError as err:
                         print(err)
                         status = "异常"
                     finally:
                         logger.info('删除文件夹:{}{}', joinpath, status)
-                        self.show_operate_log('删除文件夹:' + joinpath + status)
+                        self.show_operate_log('删除文件夹:-------------\n' + joinpath + '\n【' + status + "】")
                 else:
                     self.recursion_del(joinpath, deltarget)
 

+ 33 - 2
ui/filedel/filedel_dialog.py

@@ -67,12 +67,43 @@ class FileDelDialog ( wx.Dialog ):
 		self.m_check_box_dot_idea.SetValue(True)
 		b_sizer_select_file_or_dir_column3.Add( self.m_check_box_dot_idea, 0, wx.ALL, 5 )
 
-		self.m_check_box_node_modules = wx.CheckBox( sb_sizer_select_file_or_dir.GetStaticBox(), wx.ID_ANY, u"node_modules", wx.DefaultPosition, wx.DefaultSize, 0 )
-		b_sizer_select_file_or_dir_column3.Add( self.m_check_box_node_modules, 0, wx.ALL, 5 )
+		self.m_check_box_dot_iml = wx.CheckBox( sb_sizer_select_file_or_dir.GetStaticBox(), wx.ID_ANY, u".iml", wx.DefaultPosition, wx.DefaultSize, 0 )
+		self.m_check_box_dot_iml.SetValue(True)
+		b_sizer_select_file_or_dir_column3.Add( self.m_check_box_dot_iml, 0, wx.ALL, 5 )
 
 
 		b_sizer_select_file_or_dir.Add( b_sizer_select_file_or_dir_column3, 0, wx.SHAPED, 5 )
 
+		b_sizer_select_file_or_dir_column4 = wx.BoxSizer( wx.VERTICAL )
+
+		self.m_check_box_mac_dot_ = wx.CheckBox( sb_sizer_select_file_or_dir.GetStaticBox(), wx.ID_ANY, u"._", wx.DefaultPosition, wx.DefaultSize, 0 )
+		self.m_check_box_mac_dot_.SetToolTip( u"Mac电脑生成的._开头的文件" )
+
+		b_sizer_select_file_or_dir_column4.Add( self.m_check_box_mac_dot_, 0, wx.ALL, 5 )
+
+		self.m_check_box_mac_dot_DS_Store = wx.CheckBox( sb_sizer_select_file_or_dir.GetStaticBox(), wx.ID_ANY, u".DS_Store", wx.DefaultPosition, wx.DefaultSize, 0 )
+		self.m_check_box_mac_dot_DS_Store.SetToolTip( u"Mac电脑生成的.DS_Store文件" )
+
+		b_sizer_select_file_or_dir_column4.Add( self.m_check_box_mac_dot_DS_Store, 0, wx.ALL, 5 )
+
+
+		b_sizer_select_file_or_dir.Add( b_sizer_select_file_or_dir_column4, 0, wx.SHAPED, 5 )
+
+		b_sizer_select_file_or_dir_column5 = wx.BoxSizer( wx.VERTICAL )
+
+		self.m_check_box_mac_MACOSX = wx.CheckBox( sb_sizer_select_file_or_dir.GetStaticBox(), wx.ID_ANY, u"__MACOSX", wx.DefaultPosition, wx.DefaultSize, 0 )
+		self.m_check_box_mac_MACOSX.SetToolTip( u"Mac电脑生成的__MACOSX文件夹" )
+
+		b_sizer_select_file_or_dir_column5.Add( self.m_check_box_mac_MACOSX, 0, wx.ALL, 5 )
+
+		self.m_check_box_node_modules = wx.CheckBox( sb_sizer_select_file_or_dir.GetStaticBox(), wx.ID_ANY, u"node_modules", wx.DefaultPosition, wx.DefaultSize, 0 )
+		self.m_check_box_node_modules.SetToolTip( u"前端node产生的编译文件" )
+
+		b_sizer_select_file_or_dir_column5.Add( self.m_check_box_node_modules, 0, wx.ALL, 5 )
+
+
+		b_sizer_select_file_or_dir.Add( b_sizer_select_file_or_dir_column5, 0, wx.SHAPED, 5 )
+
 
 		sb_sizer_select_file_or_dir.Add( b_sizer_select_file_or_dir, 1, wx.EXPAND, 5 )
 

+ 13 - 14
ui/main/main.py

@@ -22,7 +22,7 @@ from loguru import logger
 from constant import constant
 from spider import upgradespider
 from utils import configini
-from utils import pathutil
+from utils import path
 from core import alterparam
 from core import ruoyi
 from core import ruoyicloud
@@ -34,13 +34,12 @@ class Main(main_frame.MainFrame):
     def __init__(self, parent):
         main_frame.MainFrame.__init__(self, parent)
         self.icon = wx.Icon(
-            pathutil.resource_path(constant.APP_BITMAP_TYPE_ICO),
+            path.resource_path(constant.APP_BITMAP_TYPE_ICO),
             wx.BITMAP_TYPE_ICO)
         self.SetIcon(self.icon)
 
         # 记录当前工作目录
         globals()[constant.APP_WORK_DIRECTORY] = os.getcwd()
-        print(globals()[constant.APP_WORK_DIRECTORY])
         self.m_filePicker.GetPickerCtrl().SetLabel('选择文件')
         self.m_filePicker.GetTextCtrl().SetHint('请选择从官网下载下来的“.zip”后缀的压缩文件')
 
@@ -179,17 +178,17 @@ class Main(main_frame.MainFrame):
             self.show_operate_log('修改发生异常:\n{}'.format(error))
             self.show_operate_log('\r----------------------')
             logger.error('修改发生异常:{}', error)
-
-        # 切换当前工作目录
-        os.chdir(globals()[constant.APP_WORK_DIRECTORY])
-        logger.info('修改完成,输出目录:{}', target_dir)
-        globals()['output_directory'] = target_dir
-        self.m_btn_open_output_directory.Enable()
-        #启用按钮
-        self.m_btn_start.Enable()
-        self.m_btn_clear.Enable()
-        self.show_operate_log('输出目录:' + target_dir)
-        self.show_operate_log('任务结束!')
+        finally:
+            # 切换当前工作目录
+            os.chdir(globals()[constant.APP_WORK_DIRECTORY])
+            logger.info('修改完成,输出目录:{}', target_dir)
+            globals()['output_directory'] = target_dir
+            self.m_btn_open_output_directory.Enable()
+            #启用按钮
+            self.m_btn_start.Enable()
+            self.m_btn_clear.Enable()
+            self.show_operate_log('输出目录:' + target_dir)
+            self.show_operate_log('任务结束!')
 
     # 实现开始执行按钮的事件
     def OnClickEventStart(self, event):

+ 2 - 2
ui/reward/reward.py

@@ -8,13 +8,13 @@
 """
 import wx
 import ui.reward.reward_dialog as dialog
-from utils import pathutil
+from utils import path
 
 
 class Reward(dialog.RewardDialog):
     def __init__(self, parent):
         dialog.RewardDialog.__init__(self, parent)
-        image_file = pathutil.resource_path('img/wx_reward.png')
+        image_file = path.resource_path('img/wx_reward.png')
         image = wx.Image(image_file, wx.BITMAP_TYPE_ANY)
         image.Rescale(300, 300, wx.IMAGE_QUALITY_HIGH)
         bitmap = image.ConvertToBitmap()

+ 1 - 2
utils/__init__.py

@@ -4,5 +4,4 @@
 """
 import utils.aescrypt as aescrypt
 import utils.configini as configini
-import utils.pathutil as pathutil
-import utils.globalvalues as globalvalues
+import utils.path as path

+ 7 - 10
utils/configini.py

@@ -8,8 +8,7 @@
 """
 import configparser
 import os
-
-from utils import globalvalues
+import sys
 from utils import aescrypt
 
 
@@ -23,16 +22,14 @@ class Config:
     
     def __init__(self, filepath=None):
         if filepath:
-            config_path = filepath
+            self.configPath = filepath
         else:
-            config_path = os.path.join(globalvalues.EXE_PATH, 'config.ini')
-        if len(globalvalues.CONFIG_INI_PATH) == 0:
-            globalvalues.CONFIG_INI_PATH = config_path
+            self.configPath = os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), 'config.ini')
         self.config_parser = configparser.ConfigParser()
-        if not os.path.exists(globalvalues.CONFIG_INI_PATH):
+        if not os.path.exists(self.configPath):
             self.config_parser['config'] = {'enable': False}
             self.write()
-        self.config_parser.read(globalvalues.CONFIG_INI_PATH)
+        self.config_parser.read(self.configPath)
         self.crypt = aescrypt.AesCrypt()
 
     def get_value(self, section, key):
@@ -88,5 +85,5 @@ class Config:
 
     def write(self):
         """写入配置文件"""
-        with open(globalvalues.CONFIG_INI_PATH, 'w+') as config_file:
-            self.config_parser.write(config_file)
+        with open(self.configPath, 'w+') as configFile:
+            self.config_parser.write(configFile)

+ 0 - 10
utils/globalvalues.py

@@ -1,10 +0,0 @@
-# -*- coding: utf-8 -*-
-# @Time : 2021/02/22
-# @Author : ricky
-# @File : globalvalues.py
-# @Software: vscode
-"""
-全局变量
-"""
-CONFIG_INI_PATH = ''
-EXE_PATH = ''

+ 1 - 7
utils/pathutil.py → utils/path.py

@@ -1,14 +1,13 @@
 # -*- coding: utf-8 -*-
 # @Time : 2021/02/20
 # @Author : ricky
-# @File : pathutil.py
+# @File : path.py
 # @Software: vscode
 """
 路径工具类
 """
 import os
 import sys
-from utils import globalvalues
 
 
 def resource_path(relative_path):
@@ -26,9 +25,4 @@ def resource_path(relative_path):
         exepath = sys._MEIPASS
     else:
         exepath = os.path.abspath('.')
-        if len(globalvalues.EXE_PATH) > 0:
-            exepath = globalvalues.EXE_PATH
-        else:
-            globalvalues.EXE_PATH = exepath
-
     return os.path.join(exepath, relative_path)