Files is a file manager. It has features like multiple tabs, panes, columns, tags and shell extensions in the context menu.
View on luti logo
tis-files icon


  • package : tis-files
  • version :
  • architecture : x64
  • categories : System and network
  • maintainer : WAPT Team,Tranquil IT,Pierre Cosson
  • description : Files is a file manager. It has features like multiple tabs, panes, columns, tags and shell extensions in the context menu.
  • locale :
  • target_os : windows
  • min_wapt_version : 2.1
  • sources : https://www.microsoft.com/store/apps/9nghp3dx8hdx
  • installed_size :
  • impacted_process : Files
  • description_fr : Files est un gestionnaire de fichiers. Il possède des fonctionnalités telles que des onglets multiples, des volets, des colonnes, des balises et des extensions shell dans le menu contextuel.
  • description_pl : Files jest menedżerem plików. Posiada funkcje takie jak wiele zakładek, paneli, kolumn, znaczników i rozszerzeń powłoki w menu kontekstowym.
  • description_de : Dateien ist ein Dateimanager. Er verfügt über Funktionen wie mehrere Registerkarten, Fenster, Spalten, Tags und Shell-Erweiterungen im Kontextmenü.
  • description_es : Files es un gestor de archivos. Tiene características como múltiples pestañas, paneles, columnas, etiquetas y extensiones de shell en el menú contextual.
  • description_pt : O ficheiro é um gestor de ficheiros. Tem características como múltiplos separadores, painéis, colunas, etiquetas e extensões de conchas no menu de contexto.
  • description_it : Files è un gestore di file. Ha caratteristiche come schede multiple, riquadri, colonne, tag ed estensioni di shell nel menu contestuale.
  • description_nl : Files is een bestandsbeheerder. Het heeft functies zoals meerdere tabbladen, vensters, kolommen, tags en shell extensies in het contextmenu.
  • description_ru : Files - это файловый менеджер. Он имеет такие возможности, как несколько вкладок, панелей, колонок, тегов и расширений оболочки в контекстном меню.
  • editor : Nikolay Pultsin
  • licence : GPLv3
  • signature_date : 2022-03-15T10:15:57.415522
  • Homepage : https://files.community/


# -*- coding: utf-8 -*-
from setuphelpers import *
import requests
from bs4 import BeautifulSoup

# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
bin_contains = "FilesUWP"
appx_package = "49306atecsolution.FilesUWP"
appx_dir = makepath(programfiles, "WindowsAppsInstallers")
file_extension = "msixbundle"

def install():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_name = glob.glob("*%s*.%s" % (bin_contains, file_extension))[0]
    bin_path = makepath(appx_dir, bin_name)

    # Checking minimum Windows version
    if windows_version() >= WindowsVersions.Windows10v1809:
        # Copying the software
        if not isdir(appx_dir):
            for appx_file in glob.glob("%s/*%s*.%s" % (appx_dir, bin_contains, file_extension)):
                if not package_version in appx_file:
        if not isfile(bin_path):
            print("Copying: %s to: %s" % (bin_name, appx_dir))
            filecopyto(bin_name, appx_dir)
            "This Windows version (%s) need to be upgraded to minimum version (%s) to use this package"
            % (windows_version(), WindowsVersions.Windows10v1809)

def uninstall():
    # Declaring local variables
    package_version = control.get_software_version()
    bin_path = glob.glob(makepath(appx_dir, "*%s*.%s" % (bin_contains, file_extension)))[0]

    # Uninstalling the package
    if isfile(bin_path):
    if isdir(appx_dir) and dir_is_empty(appx_dir):
        print("Removing: %s since he is empty" % (appx_dir))

def session_setup():
    # Declaring local variables
    package_version = control.get_software_version()
    app_name = control.name
    bin_path = glob.glob(makepath(appx_dir, "*%s*.%s" % (bin_contains, file_extension)))[0]
    bin_name = bin_path.split("\\")[-1]

    # Installing the software in user env
    appx_version = get_powershell_str("Get-AppxPackage -Name %s" % appx_package, "Version")
    if not appx_version or appx_version < package_version or force:
        print("Installing: %s" % bin_name)
        run_powershell('Add-AppxPackage -Path "%s"' % bin_path)
        print("%s is installed in correct version (%s)" % (app_name, appx_version))

def update_package():
    # Declaring local variables
    result = False
    proxies = get_proxies()
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
    store_id = "9nghp3dx8hdx"
    res = requests.post(
        "type=ProductId&url=%s&ring=RP&lang=fr-FR" % store_id,
        headers={"content-type": "application/x-www-form-urlencoded"},
    page = BeautifulSoup(res.content, features="html.parser")
    for bs_search in page.find_all("a"):
        if bin_contains in bs_search.text and ".%s" % file_extension in bs_search.text:
            version = bs_search.text.split("_")[1]
            latest_bin = bs_search.text
            download_url = bs_search["href"]
    if download_url.split("/")[2].endswith("microsoft.com"):
        if not isfile(latest_bin):
            print("Downloading: %s" % latest_bin)
            wget(download_url, latest_bin, proxies=proxies)
            print("Binary file version corresponds to online version")

        if Version(version) > Version(control.get_software_version()):
            print("Software version updated (from: %s to: %s)" % (control.get_software_version(), Version(version)))
            result = True
            print("Software version up-to-date (%s)" % Version(version))
        control.version = "%s-%s" % (Version(version), control.version.split("-", 1)[-1])
        print("ERROR The retrieved url will not download from microsoft's servers")
    # control.set_software_version(version)

    # Deleting outdated binaries

    # Validating or not update-package-sources
    return result

def remove_appx(package, default_user=True):
    r"""Uninstall and remove Windows AppX package from the computer in machine and user environnement

        package (str): package name, asterisk character (*) can be used as joker
        default_user (bool): Remove from image that will be installed for each new user

    .. versionadded:: 2.2

    if running_as_admin() or running_as_system():
        run_powershell('Get-AppxPackage "%s" -AllUsers | Remove-AppxPackage -AllUsers' % package)
        if default_user:
                'Get-AppXProvisionedPackage -Online | Where-Object DisplayName -Like "%s" | Remove-AppxProvisionedPackage -Online -AllUsers' % package
        run_powershell('Get-AppxPackage "%s" | Remove-AppxPackage' % package)

def get_powershell_str(powershell_cmd, value=None):
    r"""Get a value as string from the output of a powershell command
    WARNING: Adding -AllUsers parameter may be necessary to make sure WAPT is enable to get the request value

        powershell_cmd (str): Powershell command
        value (str)         : Value to get as string

    .. versionadded:: 2.2

    if value:
        return str(run_powershell("%s | Select-Object -ExpandProperty %s | Write-Host -NoNewline" % (powershell_cmd, value), output_format="text"))
        return str(run_powershell("%s | Write-Host -NoNewline" % powershell_cmd, output_format="text"))



Changelog software url : https://github.com/files-community/Files/releases

No changelog.txt.