def server_qnx_1(): # 新版本路径 sw_path = '/mnt2/env/AOM/' # client端在本地存放版本文件的路径,新版本解压到这个路径下 loacl_client_storage = "/home/oem/snap/work/client/" local_debug_path = "/home/oem/snap/work/apk/" os.system("rm -rf "+ loacl_client_storage) #删除指定的本地客户端存储文件夹及其所有内容。 list_1 = [] #创建一个空列表list_1,存储指定目录中的所有文件和子目录的名称; for i in os.listdir(sw_path): #获取名称 if i.find("AOM_PC")>=0: print(i) list_1.append(i) list_1.sort() print(list_1[-1]) last_sw_path = sw_path + os.sep + list_1[-1] print(last_sw_path) for i in os.listdir(last_sw_path): print(i) if i.find("logic_install_android_armeabi")>=0: client_sw_path = last_sw_path + os.sep +i break ... list_1.append(i) print(client_sw_path) #解压命令,client端与Apk包解压 os.system("7z x -y "+client_sw_path+" -o"+loacl_client_storage) os.system("7z x -y "client_debug+" -o"local_debug_path)
时间: 2024-04-24 14:21:58 浏览: 93
这段代码实现了一个服务器端的功能,主要用于查找指定目录中的最新版本文件,然后将其解压到指定的目录中。代码中包含以下步骤:
1. 定义函数 `server_qnx_1()`,没有参数。
2. 设置新版本文件所在的路径 `sw_path`,本地客户端存储路径 `loacl_client_storage`,以及本地调试路径 `local_debug_path`。
3. 执行系统命令,删除指定的本地客户端存储文件夹及其所有内容。
4. 创建一个空列表 `list_1`,用于存放指定目录中的所有文件和子目录的名称。
5. 遍历指定目录中的所有文件和子目录,获取它们的名称,并将名称添加到列表 `list_1` 中。如果名称中包含字符串 "AOM_PC",则输出该名称。
6. 将列表 `list_1` 按照文件名的字母顺序排序,并输出其中最后一个文件名。
7. 根据最后一个文件名,构造最新版本文件的路径,并输出该路径。
8. 遍历最新版本文件路径中的所有文件和子目录,获取它们的名称。如果名称中包含字符串 "logic_install_android_armeabi",则将该文件夹路径存储到变量 `client_sw_path` 中,并跳出循环。
9. 输出变量 `client_sw_path` 的值。
10. 执行系统命令,将客户端版本文件解压到指定的本地客户端存储路径中。
11. 执行系统命令,将调试文件解压到指定的本地调试路径中。
需要注意的是,代码中使用了 `os` 模块的函数来获取文件列表和执行系统命令。此外,代码中使用了 `7z` 命令来进行文件解压缩操作。
相关问题
qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target
这段代码是使用 qmake 来为一个项目配置安装目录。
在 QNX 操作系统中,安装目录被设置为 `/tmp/$${TARGET}/bin`,其中 `$${TARGET}` 是 qmake 中的一个变量,表示目标文件名。在其他的类 Unix 系统中(排除 Android),安装目录被设置为 `/opt/$${TARGET}/bin`。如果 `target.path` 变量不为空,那么就将 `target` 添加到 `INSTALLS` 列表中。`INSTALLS` 是一个 qmake 中的预定义变量,用于指定需要在安装时复制的文件列表和它们的安装路径。
这段代码的作用是为项目指定在不同操作系统上的安装目录,以便在安装时将文件复制到正确的位置。
QT += core gui quick greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++17 DEFINES += QT_DEPRECATED_WARNINGS # You can make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ main.cpp \ HEADERS += \ # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target DISTFILES += \ CMakeLists.txt \ android/AndroidManifest.xml \ android/build.gradle \ android/gradlew \ main.qml RESOURCES += \ main.qrc翻译成cmake
这段代码对应的 CMakeLists.txt 代码如下:
```
cmake_minimum_required(VERSION 3.5)
project(myproject)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt5 COMPONENTS Core Gui Quick REQUIRED)
if(Qt5_VERSION VERSION_GREATER "5")
find_package(Qt5 COMPONENTS Widgets REQUIRED)
endif()
add_executable(myapp main.cpp main.qml resources.qrc)
target_link_libraries(myapp Qt5::Core Qt5::Gui Qt5::Quick)
if(Qt5_VERSION VERSION_GREATER "5")
target_link_libraries(myapp Qt5::Widgets)
endif()
install(TARGETS myapp DESTINATION bin)
set(CPACK_PACKAGE_NAME "myapp")
set(CPACK_PACKAGE_VENDOR "My Company")
set(CPACK_PACKAGE_VERSION "1.0")
include(CPack)
```
其中,`cmake_minimum_required()` 指定了 CMake 最低版本要求,`project()` 指定了项目名称。
`set(CMAKE_AUTOMOC ON)`、`set(CMAKE_AUTORCC ON)`、`set(CMAKE_AUTOUIC ON)` 分别开启了自动生成 MOC、RCC 和 UI 文件的选项。
`set(CMAKE_CXX_STANDARD 17)` 和 `set(CMAKE_CXX_STANDARD_REQUIRED ON)` 指定了 C++ 标准和要求使用该标准。
`find_package(Qt5 COMPONENTS Core Gui Quick REQUIRED)` 和 `find_package(Qt5 COMPONENTS Widgets REQUIRED)` 分别查找 Qt5 的 Core、Gui、Quick 和 Widgets 组件,并要求这些组件必须存在。
`add_executable(myapp main.cpp main.qml resources.qrc)` 添加了可执行文件 myapp 的源文件和资源文件。
`target_link_libraries()` 分别链接 Qt5 的 Core、Gui、Quick 和 Widgets 组件。
`install()` 指定了安装目标,将可执行文件安装到 bin 目录下。
`set(CPACK_PACKAGE_NAME "myapp")`、`set(CPACK_PACKAGE_VENDOR "My Company")` 和 `set(CPACK_PACKAGE_VERSION "1.0")` 指定了打包相关的信息。
最后,`include(CPack)` 包含了 CPack 模块,用于打包和分发软件。
阅读全文