精华内容
下载资源
问答
  • 该文章由修改而来实现:可以遍历上级目录,遍历二级三级目录,压缩指定文件或文件夹到指定文件夹。压缩20多M的文件下载正常,压缩70多M的文件,下载出错,具体原因不知,大文件可以注释下载代码,改为ftp下载list....

    该文章由

    修改而来

    实现:

    可以遍历上级目录,遍历二级三级目录,压缩指定文件或文件夹到指定文件夹。

    压缩20多M的文件下载正常,压缩70多M的文件,下载出错,具体原因不知,大文件可以注释下载代码,改为ftp下载

    list.php文件代码:

    header("Content-type:text/html;charset=utf8");

    require('./getfile.php');

    $path = isset($_GET['path']) ? $_GET['path'] : '../..'; //遍历目录

    $zippath = '../../backup/'; //压缩文件保存目录

    $scandir=new traverseDir();

    //$scandir->scandir($scandir->currentdir);

    $scandir->scandir($path);

    $scandir->currentdir;

    if (isset($_POST['down_load'])){

    $items=$_POST['items'];

    $scandir->tozip($items,$path,$zippath);//将文件压缩成zip格式

    }

    //echo "当前的工作目录:".$scandir->currentdir;

    echo "当前目录:".$path;

    if($path != '..'){

    echo '上级目录';

    }

    echo "
    当前目录下的所有文件";

    ?>

    名称大小(KB)

    $res=$scandir->fileinfo;

    foreach ($res as $k=>$v){

    if (!($k=='.' || $k=='..')) {//过滤掉.和..

    ?>

    if($v['type'] == 1){

    echo '文件夹:' . $k . '';

    }else{

    echo $k;

    }

    ?>

    echo number_format($v[0],0);

    ?>

    }

    }

    ?>

    全选

    $("#selall").click(function(){

    var xz = $(this).prop("checked");//判断全选按钮的选中状态

    var ck = $(".filename").prop("checked",xz); //让class名为qx的选项的选中状态和全选按钮的选中状态一致。

    });

    getfile.php文件代码:

    require'./download.php';

    /**

    * 遍历目录,打包成zip格式

    */

    class traverseDir{

    public $currentdir;//当前目录

    public $filename;//文件名

    public $fileinfo;//用于保存当前目录下的所有文件名和目录名以及文件大小

    public function __construct(){

    $this->currentdir=getcwd();//返回当前目录

    }

    //遍历目录

    public function scandir($filepath){

    if (is_dir($filepath)){

    $arr=scandir($filepath);

    foreach ($arr as $k=>$v){

    $v2=iconv("gb2312","utf-8",$v); // 文件或目录为中文,显示乱码,因为页面是utf-8编码,从windows获得的文件名称是gb2312编码,所以要把文件名gb2312转出utf-8编码,输出到页面。但是getfilesize($v)也用到文件名获取文件大小,如果转成utf-8编码后,就找不到文件了,所以getfilesize($v)用的还是原来的gb2312编码,这也是上面变量命名为$v2的原因。关联本页面72行

    $filepath_new = $filepath . '/' . $v;

    if(!is_dir($filepath_new)){

    $this->fileinfo[$v2][]=$this->getfilesize($filepath_new);

    $this->fileinfo[$v2]['type'] = 0;

    $this->fileinfo[$v2]['path'] = $filepath_new;

    }else{

    $this->fileinfo[$v2][]=0;

    $this->fileinfo[$v2]['type'] = 1;

    $this->fileinfo[$v2]['path'] = $filepath_new;

    }

    }

    }else {

    echo "";

    }

    }

    /**

    * 返回文件的大小

    * @param string $filename 文件名

    * @return 文件大小(KB)

    */

    public function getfilesize($fname){

    return filesize($fname)/1024;

    }

    /**

    * 压缩目录

    */

    public function addFileToZip($path, $zip) {

    // 判断是文件还是目录,区别对待

    if(is_dir($path)){

    $handler = opendir($path); //打开当前文件夹由$path指定。

    while (($filename = readdir($handler)) !== false) {

    if ($filename != "." && $filename != "..") { // 文件夹文件名字为'.'和‘..’,不要对他们进行操作

    if (is_dir($path . "/" . $filename)) { // 如果读取的某个对象是文件夹,则递归

    $this->addFileToZip($path . "/" . $filename, $zip);

    } else { // 将文件加入zip对象

    $zip->addFile($path . "/" . $filename);

    }

    }

    }

    @closedir($path);

    }else{

    $zip->addFile($path);

    }

    }

    /**

    * 压缩文件(zip格式)

    */

    public function tozip($items,$path,$zippath){

    $zip=new ZipArchive();

    $zipname = date('YmdHis',time()).'.zip';

    if (!file_exists($zippath.$zipname)){

    $zip->open($zippath.$zipname,ZipArchive::CREATE | ZipArchive::OVERWRITE);//创建一个空的zip文件

    for ($i=0;$i

    $v2=iconv("utf-8","gb2312",$items[$i]); // 由于遍历目录的时候,把文件夹名称转换成utf-8输出到页面的,所以通过表单提交的文件名是utf-8编码的,而utf-8编码的文件名在windows中是找不到对于文件的,所以要把文件名转换成gb2312编码。关联本页面17行

    $this->addFileToZip($path.'/'.$v2, $zip);

    }

    $zip->close();

    //压缩20多M的文件下载正常,压缩70多M的文件,下载出错,具体原因不知,大文件可以注释下载代码,改为ftp下载

    $dw=new download($zipname,$zippath); //下载文件

    $dw->getfiles();

    //echo "";

    }

    }

    }

    ?>

    download.php文件代码:

    /**

    * 下载文件

    */

    class download{

    protected $_filename;

    protected $_filepath;

    protected $_filesize;//文件大小

    public function __construct($filename,$filepath){

    $this->_filename=$filename;

    $this->_filepath=dirname(__FILE__).'/'.$filepath.$filename;

    }

    //获取文件名

    public function getfilename(){

    return $this->_filename;

    }

    //获取文件路径(包含文件名)

    public function getfilepath(){

    return $this->_filepath;

    }

    //获取文件大小

    public function getfilesize(){

    return $this->_filesize=number_format(filesize($this->_filepath)/(1024*1024),2);//去小数点后两位

    }

    //下载文件的功能

    public function getfiles(){

    //检查文件是否存在

    if (file_exists($this->_filepath)){

    //打开文件

    $file = fopen($this->_filepath,"r");

    //返回的文件类型

    Header("Content-type: application/octet-stream");

    //按照字节大小返回

    Header("Accept-Ranges: bytes");

    //返回文件的大小

    Header("Accept-Length: ".filesize($this->_filepath));

    //这里对客户端的弹出对话框,对应的文件名

    Header("Content-Disposition: attachment; filename=".$this->_filename);

    //修改之前,一次性将数据传输给客户端

    echo fread($file, filesize($this->_filepath));

    //修改之后,一次只传输1024个字节的数据给客户端

    //向客户端回送数据

    $buffer=1024;//

    //判断文件是否读完

    while (!feof($file)) {

    //将文件读入内存

    $file_data=fread($file,$buffer);

    //每次向客户端回送1024个字节的数据

    echo $file_data;

    }

    fclose($file);

    }else {

    echo "";

    }

    }

    }

    ?>

    展开全文
  • python import 上级目录的导入

    千次阅读 2020-12-24 06:05:43
    python import 上级目录的导入有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_lstm.py和上级目录下的_config.py。_config.pynetworks_...

    python import 上级目录的导入

    有时候我们可能需要import另一个路径下的python文件,例如下面这个目录结构,我们想要在_train.py里import在networks目录下的_lstm.py和上级目录下的_config.py。

    _config.py

    networks

    _lstm.py

    _cnn.py

    pipelines

    _train.py

    只需两步操作

    (1)在networks文件夹下创建空的__init__.py文件

    _config.py

    networks

    _lstm.py

    _cnn.py

    pipelines

    _train.py

    (2)使用sys库添加路径

    # _train.py

    import sys

    sys.path.append("..") # 这句是为了导入_config

    from networks._lstm import *

    from _config import *

    更新

    有同学反映,Python 3.6.7以上方法失效。这里给出一个不优雅的解决方法,其本质是递归遍历文件路径,增加到引用的路径中。

    # _train.py

    import sys, os

    sys.path.append("..")

    sys.path.extend([os.path.join(root, name) for root, dirs, _ in os.walk("../") for name in dirs])

    到此这篇关于python import 上级目录的导入的文章就介绍到这了,更多相关python import 上级目录内容请搜

    展开全文
  • 摘要 我们在日常的编码中进程遇到获取文件路径等问问题,有的时候不知道怎么获取文件路径。...获取上级目录 import os print(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) print

    摘要

    我们在日常的编码中进程遇到获取文件路径等问问题,有的时候不知道怎么获取文件路径。下面介绍python中获取文件的绝对路径的集中方式

    获取当前目录

    import os
    
    print(os.getcwd())
    
    print(os.path.abspath(os.path.dirname(__file__)))

    获取上级目录

    import os
    
    print(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) 
    
    print(os.path.abspath(os.path.dirname(os.getcwd()))) 
    
    print(os.path.abspath(os.path.join(os.getcwd(), ".."))) 

    获取上上级目录

    import os
    
    print(os.path.abspath(os.path.join(os.getcwd(), "../.."))) 
    展开全文
  • # coding:utf-8 import os '''***获取当前目录***''' ...'''***获取上级目录***''' print(os.path.abspath(os.path.dirname(os.path.dirname(__file__)))) print(os.path.abspath(os.path.dirname(os.getcwd()))) pr.
    
    # coding:utf-8
    import os
    '''***获取当前目录***'''
    print(os.getcwd())
    print(os.path.abspath(os.path.dirname(__file__)))
    
    '''***获取上级目录***'''
    print(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))
    print(os.path.abspath(os.path.dirname(os.getcwd())))
    print(os.path.abspath(os.path.join(os.getcwd(), "..")))
    
    '''***获取上上级目录***'''
    print(os.path.abspath(os.path.join(os.getcwd(), "../..")))
    
    展开全文
  • 在 Linux 中,当需要 cd 到多层的上级目录时,需要输入 cd ../../../ 等等多个 “../”。在输入比较快的时候,往往中间会多输入一个点号 ‘.’、或者少输入一个点号 ‘.’,需要往前删除,重新输入。而在实际开发...
  • 获取文件 在其他人使用你的代码时,常常因为目录层级的问题为无法运行程序…(所以在引起其他模块文件时,...上上级目录,上上上级目录; 如: 数据切割: current_path = os.path.abspath(__file__) a = current_pat
  • cmd返回上级目录

    千次阅读 2020-12-19 23:22:35
    cmd返回上级目录时间:2019-11-03 23:01:00 作者:路由君 来源:路由器之家路由器之家今天精心准备的是《cmd返回上级目录》,下面是详解!cmd返回上一层目录是哪个命令?cmd返回上一层目录的命令是: cd.. 或 cd .. ...
  • 获取目录获取当前目录可以使用...获取当前目录的上级目录Path.GetFullPath("..\\")代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;namespace Pat...
  • html如何表示上级目录

    2021-06-17 09:36:45
    该楼层疑似违规已被系统折叠隐藏此楼查看此楼如何表示上级目录../表示源文件所在目录的上一级目录,../../表示源文件所在目录的上上级目录,以此类推。假设info.html路径是:c:\Inetpub\wwwroot\sites\blabla\info....
  • nav.php"%}总是的记住用相对路径找文件首先得找到它的父节点,父节点找到了,在一个斜杠就是指定子目录,依次往下就行,所以利用相对路径找文件的方式就是第一步:../(一个这个表示本目录的父节点即上级目录)找需要...
  • import os print('***获取当前目录***') print("当前目录是:{}".format(os.getcwd())) ...print("上级目录是:{}".format(os.path.abspath(os.path.dirname(os.path.dirname(__file__))))) print(
  • end echo %parentPath% pause 下面这个脚本支持目录中带空格 @echo off set currPath=%~dp0 set parentPath= :begin FOR /F "tokens=1,* delims=\" %%i IN ("%currPath%") DO (set front=%%i) FOR /F...
  • Python-import导入上级目录文件

    千次阅读 2021-03-02 16:09:43
    假设有如下目录结构:-- dir0  | file1.py  | file2.py  | dir3  | file3.py  | dir4  | file4.pydir0文件夹下有file1.py、file2.py两个文件和dir3、dir4两个子文件夹,dir3中有file3.py文件,dir4中有file4....
  • 控制用户是否允许切换到上级目录在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行下,执行 “cd..”命令后,用户将切换到其上级目录/var,若...
  • $PWD /pwd 当前目录dname= $(dirname "$PWD") 上级目录basename '$PWD' 当前文件夹名!=====以下转载删除包含特定字符的行:g/pattern/d删除不包含指定字符的行:v/pattern/d使用 ## 拆分变量 ${var##pattern} 可以从...
  • 在Java程序中,如何获取文件的父目录或上级目录?以下示例显示如何使用File类的file.getParent()方法获取文件的父目录。package com.yiibai; import java.io.File; public class ParentDirectory { public static ...
  • 上级目录与本级目录

    2021-10-01 17:50:23
    关于上级目录与本级目录 ./ 接的是本级目录 ../ 则是上级目录
  • linux系统装了lamp运行网站时,发现www.xxx.com/index.php里调用include()里不能引用根目录上一级的php文件,只能引用根目录里的php文件。原本在window系统是正常运行的,转到linux反而出现这样的问题了,这是linux...
  • php获取父目录的方法 dirname()dirname() 方法,获取父目录的方法,官方文档:http://php.net/manual/en/function.dirname.php在 php 7.0 后,dirname() 支持两个参数,dirname($path, $level)返回给定目录的父目录...
  • 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试以下例子是命令行编译Visual Studio编写的程序:@echo offset b=%cd% //将当前目录保存到参数b中,等号前后不要有空格C:...
  • Go-获取上级目录

    2021-07-23 15:13:57
    // GetParentDirectory 获取上级目录 func GetParentDirectory(dirctory string) string { if len(dirctory) == 0 { dir, dirErr := exec.LookPath(os.Args[0]) if dirErr != nil { log.WithFields(log....
  • 批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试以下例子是命令行编译Visual Studio编写的程序:@echo offset b=%cd% //将当前目录保存到参数b中,等号前后不要有空格C:...
  • 当你在一个多级的目录下希望返回上级目录时,经常需要使用cd ../../ ,至于需要多少个../,完全由你所需要返回的目录级数而定,如下例:1234567# mkdir -p/tmp/very/long/directory/structure/that/is/too/deep# cd /...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,861
精华内容 32,344
关键字:

上级目录