精华内容
下载资源
问答
  • ZIP,RAR等压缩包里的文件删除后能找回吗?回收站里没有
  • 判断一个压缩包中的目录层次,如果有多次文件夹就警告错误。这里用到了三个方法,即:读取Zip目录结构、删除原有或指定的文件夹(目录)、判断指定目录是不是有子目录类。主要用到的是require_once "File/Archive.php"...

    判断一个压缩包中的目录层次,如果有多次文件夹就警告错误。

    这里用到了三个方法,即:读取Zip目录结构、删除原有或指定的文件夹(目录)、判断指定目录是不是有子目录类。

    主要用到的是require_once "File/Archive.php"; 另外就是自己写的后两个方法。

    define("ZHOZ_TMP_DIR", "home/zhoz/temp_upload");

    $file_name = "./zhozcom.zip";

    require_once "File/Archive.php";

    $source = File_Archive::read($file_name);

    // 读取目录结构

    $directory_name_list = array();

    while($source->next()) {

    if ((preg_match_all("/^([\w\-\.]+)\/([\w\-\.]+)$/", $source->getFilename(), $tmp))) {

    if (!in_array($tmp[1], $directory_name_list)) {

    array_push($directory_name_list, $tmp[1]);

    }

    }

    }

    if (count($directory_name_list) > 0) {

    // 以前存在的目录删除

    foreach ($directory_name_list as $tmp) {

    if (is_dir(ZHOZ_TMP_DIR . "/" . $tmp[0])) {

    ZhozHandler::delFileDir(ZHOZ_TMP_DIR . "/" . $tmp[0]);

    error_log($tmp[0] . "

    }

    }

    // 解压文件

    $command = "unzip -o " . UPLOAD_TMP_DIR . "/". $file_name . " -d " . ZHOZ_TMP_DIR;

    error_log($command, 0);

    exec($command);

    foreach ($directory_name_list as $tmp_dir) {

    // 存在子目录

    $zip_dir = ZhozHandler::checkNextDir(ZHOZ_TMP_DIR . "/". $tmp_dir[0]);

    error_log($tmp_dir[0] . "

    if ($zip_dir) {

    $check_flg = true;

    error_log($tmp_dir[0] . "

    }

    }

    } else {

    // 没找到目录也返回

    $check_flg = true;

    error_log("countdir----------is-----null", 0);

    }

    $command = "chmod -R 777 " . ZHOZ_TMP_DIR;

    error_log($command, 0);

    exec($command);

    // ファイル削除

    if (is_file(UPLOAD_TMP_DIR . "/". $file_name)) {

    unlink(UPLOAD_TMP_DIR . "/". $file_name);

    }

    PHP删除指定的文件夹

    下面这两个方法,将包含在ZhozHandler类中:

    function delFileDir($dir) {

    $dh=opendir($dir);

    while ($file=readdir($dh)) {

    if($file!="." && $file!="..") {

    $fullpath = $dir."/".$file;

    if(!is_dir($fullpath)) {

    unlink($fullpath);

    } else {

    ZhozHandler::delFileDir($fullpath);

    }

    }

    }

    closedir($dh);

    if (rmdir($dir)) {

    return true;

    } else {

    return false;

    }

    }

    判断是不是有子目录的方法:

    function checkNextDir($directory) {

    if(!is_dir($directory)) {

    return true;

    }

    $handle = opendir($directory);

    while (($file = readdir($handle)) !== false) {

    if ($file != "." && $file != "..") {

    if(is_dir($directory.'/'.$file)) {

    return true;

    }

    }

    }

    closedir($handle);

    return false;

    }

    展开全文
  • 举个例子,如果想删除路径mypath下所有.zip压缩包 首先还是要用cd进入特定的路径 cd mypath 之后用以下指令删除所有.zip文件,其它文件同理 rm *.zip 如果要删除所有文件夹,则加-r rm -r * 注意,rm命令的使用...

    举个例子,如果想删除路径mypath下所有.zip压缩包
    首先还是要用cd进入特定的路径

    cd mypath
    

    之后用以下指令删除所有.zip文件,其它文件同理

    rm *.zip
    

    如果要删除所有文件夹,则加-r

    rm -r *
    

    注意,rm命令的使用一定要慎之又慎,恢复不了的!!!

    展开全文
  • 下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除。提到压缩文件就要分不同压缩格式进行讨论,主要有以下4种:gz: 即gzip,通常只能压缩一个文件tar: 本质上不是压缩工具而是打包工具,可以跟...

    下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除。

    提到压缩文件就要分不同压缩格式进行讨论,主要有以下4种:

    • gz: 即gzip,通常只能压缩一个文件
    • tar: 本质上不是压缩工具而是打包工具,可以跟.gz配合形成.tar.gz的打包压缩格式
    • zip: 和.tar.gz很类似但可以打包压缩多个文件
    • rar: 打包压缩文件,最初用于DOS

    因此,文件是否为压缩文件的判断逻辑可以如下:

    • 建立一个含压缩包后缀的列表 compressed_lst = ['gz', 'tar', 'zip', 'rar']
    • 目标文件夹下的所有文件名运行filename.split(.)[-1]获取后缀名
    • 判断后缀名是否在compressed_lst中,如果存在则运行后续的解压代码
    • 如果是以gz结尾的文件,解压后需要再次判断是否是以.tar结尾,并进行相应处理

    be23fbee0575765fd58a454739189169.png

    代码实现:不同压缩文件的解压代码各不相同

    首先是获取 download 文件夹下所有文件的文件名

    import glob 
    import os 
     
    path = r'C:xxxxdownload' 
    file_lst = glob.glob(path + '/*') 
    # 列表推导式 
    filename_lst = [os.path.basename(i) for i in file_lst] 
     
    print(filename_lst) 

    接下来根据文件的后缀名判断是否需要压缩,先看一下代码框架

    for i in filename_lst: 
        if '.' in i: 
            # 获取后缀名 
            suffix = i.split('.')[-1] 
            # 逐个将后缀名和各格式的压缩后缀匹配 
            if suffix == 'gz': 
                pass 
                if ...: # 再次判断新产生的文件名是否以 .tar 结尾 
                    pass 
            if suffix == 'tar': 
                pass 
            if suffix == 'zip': 
                pass 
            if suffix == 'rar': 
                pass 

    注意点:

    有些文件没有后缀名,因此可能不存在 .,这时用 filename.split('.')[-1]会报错,

    因此需要先判断以.gz 结尾的文件,解压后需要再次判断是否是以 .tar 结尾,

    然后我们就可以分别将四种压缩文件的解压代码写成函数,符合时候单独调用即可

    581df8416ff3f8a1f3e09894772e8559.png

    1. 处理.gz 文件

    import gzip 
     
    def ungz(filename): 
        filenamefilename = filename[:-3] # gz文件的单文件解压就是去掉 filename 后面的 .gz 
        gz_file = gzip.GzipFile(filename) 
        with open(filename, "w+") as file: 
            file.write(gz_file.read()) 
            return filename  # 这个gzip的函数需要返回值以进一步配合untar函数 

    gz文件有可能跟tar文件配合,因此解压gz文件后需要再判断是否有必要解开tar文件。

    这里就可以先把tar文件的函数写出来

    2. 处理.tar文件

    import tarfile 
     
    def untar(filename): 
        tar = tarfile.open(filename) 
        names = tar.getnames() 
        # tar本身是将文件打包,解除打包会产生很多文件,因此需要建立文件夹存放 
        if not os.path.isdir(filename + "_dir"): 
            os.mkdir(filename + "_dir") 
        for name in names: 
            tar.extract(name, filename + "_dir/") 
        tar.close() 

    3. 处理.zip文件

    import zipfile 
     
    def unzip(filename): 
        zip_file = zipfile.ZipFile(filename) 
        # 类似tar解除打包,建立文件夹存放解压的多个文件 
        if not os.path.isdir(filename + "_dir"): 
            os.mkdir(filename + "_dir") 
        for names in zip_file.namelist(): 
            zip_file.extract(names, filename + "_dir/") 
        zip_file.close() 

    4. 处理.rar文件

    import rarfile 
     
    def unrar(filename): 
        rar = rarfile.RarFile(filename) 
        if not os.path.isdir(filename + "_dir"): 
            os.mkdir(filename + "_dir") 
        os.chdir(filename + "_dir") 
        rar.extractall() 
        rar.close() 

    可以看到,四种解压代码略有不同,推荐大家实际演示中自己体会一下差别,解压后配合 os.remove() 就可以删除压缩包。

    现在看看逻辑框架补上解压函数后的内容:

    for filename in filename_lst:     if '.' in filename:         suffix = filename.split('.')[-1]         if suffix == 'gz':             new_filename = ungz(filename)             os.remove(filename)             if new_filename.split('.')[-1] == 'tar':                 untar(new_filename)                 os.remove(new_filename)           if suffix == 'tar':             untar(filename)             os.remove(filename)         if suffix == 'zip':             unzip(filename)             os.remove(filename)         if suffix == 'rar':             unrar(filename)             os.remove(filename) 

    5. 实现实时检测

    比较简单的方法就是建立 while True 死循环配合 time.sleep()睡眠,框架如下:

    import time 
     
    while True: 
        func() 
        time.sleep(5) # 睡眠秒数可以设置大一点避免过度占用资源 

    最后将第二步的实现代码改为函数并放在循环框架中就可以完成本次需求,完整代码如下:

    import glob 
    import os 
    import gzip 
    import tarfile 
    import zipfile 
    import rarfile 
    import time 
     
    path = r'C:xxxxdownload' 
    file_lst = glob.glob(path + '/*') 
    filename_lst = [os.path.basename(i) for i in file_lst] 
     
    def ungz(filename): 
        filenamefilename = filename[:-3] 
        gz_file = gzip.GzipFile(filename) 
        with open(filename, "w+") as file: 
            file.write(gz_file.read()) 
        return filename 
     
    def untar(filename): 
        tar = tarfile.open(filename) 
        names = tar.getnames() 
        if not os.path.isdir(filename + "_dir"): 
            os.mkdir(filename + "_dir") 
        for name in names: 
            tar.extract(name, filename + "_dir/") 
        tar.close() 
     
    def unzip(filename): 
        zip_file = zipfile.ZipFile(filename) 
        if not os.path.isdir(filename + "_dir"): 
            os.mkdir(filename + "_dir") 
        for names in zip_file.namelist(): 
            zip_file.extract(names, filename + "_dir/") 
        zip_file.close() 
     
    def unrar(filename): 
        rar = rarfile.RarFile(filename) 
        if not os.path.isdir(filename + "_dir"): 
            os.mkdir(filename + "_dir") 
        os.chdir(filename + "_dir") 
        rar.extractall() 
        rar.close() 
     
    def unzip_files(): 
        for filename in filename_lst: 
            if '.' in filename: 
                suffix = filename.split('.')[-1] 
                if suffix == 'gz': 
                    new_filename = ungz(filename) 
                    os.remove(filename) 
                    if new_filename.split('.')[-1] == 'tar': 
                        untar(new_filename) 
                        os.remove(new_filename) 
                if suffix == 'tar': 
                    untar(filename) 
                    os.remove(filename) 
                if suffix == 'zip': 
                    unzip(filename) 
                    os.remove(filename) 
                if suffix == 'rar': 
                    unrar(filename) 
                    os.remove(filename) 
     
    while True: 
        unzip_files() 
        time.sleep(5) 
    展开全文
  • 压缩包删除TIF(VC++)

    2007-12-15 14:21:36
    此程序可以批量删除压缩包内的TIF文件
  • 手机压缩包删除有什么后果?

    千次阅读 2020-10-04 10:43:02
    对于这些什么文件压缩包之类的我们要先了解它的构造是什么,只要弄清楚它的原理和作用我们才能决定能不能删除。所谓压缩包其实就是:一个缩小空间,就是将文件中的一些相同的字节进行压缩,从而达到了减少空间的方式...

    手机使我们生活工作必不可少的一个工具,对于它的使用我们大多都是在它的界面操作、软件使用上,对于它内部深层次的结构应用我们还知之甚少。很多时候我们点进系统内部中去会发现很多带有什么ZIP、APK类的文件,那他们到底是干什么用的?能不能删除呢?

    对于这些什么文件压缩包之类的我们要先了解它的构造是什么,只要弄清楚它的原理和作用我们才能决定能不能删除。所谓压缩包其实就是:一个缩小空间,就是将文件中的一些相同的字节进行压缩,从而达到了减少空间的方式。关于手机里的压缩包分为手机系统和手机应用文件。

     

    其实,手机有压缩包属于正常状态,它为了能够更好的服务系统,所以会出现压缩包,我们在想使用的软件的时候,出现压缩包,还是谨慎一些,如果是该app的压缩包,可以考虑删除。但是系统文件的压缩包就不能删除了,要是强行删除的话会直接影响你的手机系统运行,所以一定要谨慎。建议不要自己手动删除,容易出现未知问题,想要清理的话,用系统自带的清理工具清楚会好一些。

    看到这类文件压缩包大多都可以删除

    大部分的压缩文件(zip、apk)是可以删除的,因为zip后缀的文件大多为备份或者缓存文件,apk文件为应用程序安装文件。它们基本都是安装了相关应用程序之后,apk文件就没什么用了,是可以删除的。具体删除方法与删除zip文件类似,只要找到【安装包】文件分类,就可以删除了。

    那么看到下面这类文件一定要谨慎

    如果,如下的一些压缩包data因为可能是处理,是数据文件夹,而它的作用就是存储系统数据,不能删除。Bluetooth:蓝牙数据文件,这个不能删除。还有很多类型的都是系统专用的不能轻易删除。
     

    展开全文
  • 一、需求描述编写一个Python程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点:os 模块综合应用glob 模块综合应用利用 gzip zipfile rarfile tarfile ...
  • 大家好,欢迎来到Crossin的编程教室!压缩文件是我们在使用电脑... 一、需求描述编写一个Python程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点:os...
  • 作者|刘早起来源 |早起Python(ID:zaoqi-python)头图 | CSDN下载自东方IC 需求描述编写一个 Python 程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点...
  • 作者: 陈熹公众号:早起Python一、需求描述编写一个Python程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点:os 模块综合应用glob 模块综合应用利用 ...
  • 这篇是个人生活上遇到的小问题,就是为了之前那篇html和css入门,我去淘宝买了五块钱的udacity的前端课程,大家都知道这是国外的在线...我不懂播放软件也不想懂他选取字幕的原理,手动拿第二个视频试了下,貌似删除...
  • 3:支持重复上传(只保留最新的压缩包删除老的压缩包、解压后的文件夹及文件夹所有文件) 前置工作 添加pom依赖 <!--解压zip压缩--> <dependency> <groupId>net.lingala.zip4j</...
  • 应用场景:下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除文件使用环境:win7,python3.6代码:1、直接用for循环由于os.walk()方法自带深度遍历功能,这里直接使用for循环即可...
  • php zip 文件比较类,比较两个zip文件的内容,返回新增,删除...判断zip内文件是否一致,只处理不同的文件。这样可以节省资源与时间,因此需要编写一个能够比较zip内文件的类。ZipCompare.class.php/** Zip Compare ...
  • 大家好,欢迎来到Crossin的编程教室!...一、需求描述编写一个Python程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点:模块综合应用模块综合应用...
  • 业务场景,异地机房自动拉取已备份好的tar.gz数据库压缩包,并且只保留3天压缩包文件,用python实现 #!/usr/bin/env python import requests,time,os,datetime,platform from threading import Thread ...
  • 1.需求描述编写一个 Python 程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识点:os 模块综合应用glob 模块综合应用利用 gzip zipfile rarfile tarfile ...
  • dos删除文件夹/文件

    2011-02-19 14:48:50
    压缩包内一个是显示隐藏文件批处理,一个是删除顽固文件/文件夹批处理 希望能对您有所帮助(*^__^*)
  • 分享给大家供大家参考。具体分析如下:该php zip文件比较类主要实现比较两个zip文件的内容,返回新增,删除,及相同的文件列表。...判断zip内文件是否一致,只处理不同的文件。这样可以节省资源与...
  • Java 解压zip压缩包

    2018-02-07 15:29:00
    因为最近项目需要批量上传文件,而这里的批量就是将文件压缩在了一个zip包里,然后读取文件进行解析...3.第三个方法是 删除删除文件夹所有文件和子目录 的方法。 因为我们一般处理解析完数据之后需要删除上传的...
  • 下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除。提到压缩文件就要分不同压缩格式进行讨论,主要有以下4种:gz: 即gzip,通常只能压缩一个文件tar: 本质上不是压缩工具而是打包工具,可以跟...
  • 下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除文件 代码: 1、直接用for循环 由于os.walk()方法自带深度遍历功能,这里直接使用for循环即可找到所有文件夹及文件 import os ...
  • 下载的多个文件夹是压缩包,解压后每个文件夹都有某个网站的推广链接,想要批量的删除文件 使用环境:win7,python3.6 代码: 1、直接用for循环 由于os.walk()方法自带深度遍历功能,这里直接使用for循环即可找到...
  • 删除100万行、100M的文本文件重复行,只需0.3秒。 pascal语言编写,压缩包内有两个版本,一个是Delphi7编译的版本,一个是Free pascal编译的版本,Delphi7版本稍快一点。
  • 出现这个问题是因为Linux编码格式与这个.zip压缩包内编码格式不同,大概率是因为.zip压缩包内有以中文命名的文件 那么我们可以先删除这个乱码文件 然后重新解压.zip,这个时候解压需要加参数了 unzip -O CP936 ...
  • 删除100万行、100M的文本文件重复行,只需0.3秒。 pascal语言编写,压缩包内有两个版本,一个是Delphi7编译的版本,一个是Free pascal编译的版本,Delphi7版本稍快一点。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 708
精华内容 283
关键字:

删除压缩包内文件