精华内容
下载资源
问答
  • servlet获取相对路径 绝对路径
    展开全文
  • * 相对路径 -> 绝对路径 realpath <?php /** * @param string $in_rel: relative directory * @param string $out_abs: absolute directory */ define('PATH_MAX', 255); function sub_rel2abs...

    * 相对路径 -> 绝对路径 realpath

    <?php
    /**
     * @param string $in_rel: relative directory
     * @param string $out_abs: absolute directory
     */
    define('PATH_MAX', 255);
    function sub_rel2abs(string $in_rel, string &$out_abs) {
        $i_rtn = 0;  // return value
        $ss_rel = "";  // for relative path build
        $st_fpos = 0;    // front separator index
        $sv_path = [];   // divide path to array
     
        $st_pos = strpos($in_rel, DIRECTORY_SEPARATOR);
        $npos = 0;
        while ($npos != $st_pos) {
            if ($st_pos != 0) {
                array_push($sv_path, substr($in_rel, $st_fpos, $st_pos - $st_fpos));
            }
    // next...
            $st_fpos = $st_pos;   // set current pos to last pos
            $st_pos++;            // from next index
            $st_pos = strpos($in_rel, DIRECTORY_SEPARATOR, $st_pos);  // next separator index
        } // while ( $npos != $st_pos )
    // final separator
        array_push($sv_path, substr($in_rel, $st_fpos));
     
        $lpc = 0;    // loop count
        $i_max = count($sv_path);
        while ($lpc < $i_max && 0 === $i_rtn) {
            $ss_rel .= $sv_path[$lpc];
    // relative path => relative path
            $c_abs = realpath($ss_rel);
            if ($c_abs === false) {
                $i_rtn = -1;
            } else {
                $ss_rel = $c_abs;
                $i_rtn = 0;
            }
            $lpc++;
        } // while (count($sv_path)>0)
     
    // normal ending
        if (0===$i_rtn) {
            $out_abs = $ss_rel;  // set converted path
        }
        return $i_rtn;
    }
     
    // test
    $inDir = "/Users/Mch/Code/php/Directory";
    is_dir($inDir) || mkdir($inDir, 0777, true);
     
    $wd = __DIR__;
    chdir($inDir);
     
    $out = "";
    echo sub_rel2abs("../../../eclipse-workspace/blog.zip", $out).PHP_EOL;
    echo $out.PHP_EOL;
     
    chdir($wd);
    @rmdir($inDir);
    ?>

    output:

    0
    /Users/Mch/eclipse-workspace/blog.zip
    

      这里直接realpath就可以了,为什么多此一举?

     

    *  绝对路径 -> 相对路径

    <?php
    /**
     * $path相对于$base的相对路径
     * @param string $base
     * @param string $path
     */
    function abs2rel(string $base, string $path) {
        if (is_dir($base)) {
            $base = rtrim($base, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . ".";
        }
    
        $a = explode(DIRECTORY_SEPARATOR, $base);
        $b = explode(DIRECTORY_SEPARATOR, $path);
     
        $d = [];   // $path push
        $i = count($a)-1;
     
        $sliceEquals = function($a, $b, $j) {
            if ($j >= count($a) || $j >= count($b)) {
                throw new Exception('$j out of range');
            }
            for ($i = $j; $i >= 0; $i--) {
                if (strcmp($b[$i], $a[$i])!==0) {
                    return false;
                }
            }
            return true;
        };
        // 找到a,b数组元素相同的下标
        while (array_pop($a)) {
            $i = count($a)-1;
            if (isset($b[$i])) {
                if ($sliceEquals($a, $b, $i)) {
                    break;
                }
            }
            array_push($d, "..");
        }
        // 从首个不同元素开始
        for ($i+=1; $i < count($b); $i++) {
            array_push($d, $b[$i]);
        }
        return ".".DIRECTORY_SEPARATOR.implode(DIRECTORY_SEPARATOR, $d);
    }

    // test linux

    $rel = abs2rel('/Users/Mch/Code/php/Directory/abs2rel.php', '/Users/Mch/eclipse-workspace/');  // project.zip
    // $rel = abs2rel('/Users/Mch/Code/php/Directory/abs2rel.php', '/Users/Mch/Code/php/Directory/rel2abs.php');
    // $rel = abs2rel('/Users/Mch/Code/php/Directory/abs2rel.php', '/etc/hosts');
    // $rel = abs2rel('/opt/nginx/conf/nginx.conf', '/Users/Mch/Code/php/Directory/abs2rel.php');
    echo $rel.PHP_EOL;

    // test windows

    // test
    /*
    $rel = abs2rel("G:\\eclipse-workspace\\platform\\enso\\pom.xml", 
        "G:\\eclipse-workspace\\platform\\enso\\webapp\\ckeditor\\js\\require.js");
    */
    $rel = abs2rel("G:\\eclipse-workspace\\platform\\enso\\webapp\\ckeditor\\js", 
        "G:\\eclipse-workspace\\platform\\enso\\pom.xml");
    echo $rel.PHP_EOL;

    展开全文
  • JAVA File的创建及相对路径绝对路径

    千次阅读 2019-08-14 10:39:53
    JAVAFile的创建及相对路径绝对路径 转载自http://blog.sina.com.cn/s/blog_9386f17b0100w2vv.html File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一...

    JAVA File的创建及相对路径绝对路径

    转载自 http://blog.sina.com.cn/s/blog_9386f17b0100w2vv.html

    File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一个mytest.txt对象。注意

    这个对象只含有文件的属性(如大小,是否可读,修改时间等),不包含文件的内容,所以length=0。当我们想执行对文件的操作的时候,这个时

    候抽象路径起作用了,比如我们想执行f.createNewFile()命令时,虚拟机会将抽象路径转化为实际的物理路径,到这个转化后的物理路径(此时

    是硬盘)下进行文件的创建。这时,如果在你的D盘没有test文件夹,那么不好意思啦,程序就会抛异常,如果有test文件夹,就可以创建一个

    mytest.txt文件了。能不能创建mytest.txt就在于这个文件上面有没有test文件夹,这也就是抽象路径在装怪了。
    如果想让f引用在硬盘中把文件夹也创建出来怎么办?用f.getParentFile()求出mytest.txt上面的所有文件夹,然后在mkdirs()就搞定了。

    -----------------------
    -----------------------
    File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.以前一直使用绝对路径作为参

    数,其实这里也可以使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?

    按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路

    径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是

    Java 虚拟机的调用目录.”

    相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”

    java虚拟机的调用目录”.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:

    假设有一java源文件Example.java在d盘根目录下,该文件不含package信息.我们进入命令行窗口,然后使用”d:”命令切换到d盘根目录下,然后

    用”javac Example.java”来编译此文件,编译无错后,会在d盘根目录下自动生成”Example.class”文件.我们在调用”java Example”来运行

    该程序.此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,即

    d盘根目录:D:\.同时” 当前用户目录”也是D:\.在System.getProperty(“user.dir”);系统变量”user.dir”存放的也是这个值.

    我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前

    用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.

    搞清了这些,我们可以使用相对路径来创建文件,例如:

    File file = new File(“a.txt”);

    file.createNewFile();

    假设jvm是在”D:\”下启动的,那么a.txt就会生成在D:\a.txt;

    此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”.\”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目

    录完整路径:

    File f = new File(“.”);

    String absolutePath = f.getAbsolutePath();

    System.out.println(absolutePath);//D:\

    最后要说说在eclipse中的情况:

    Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog.那么这个路径就是jvm的启

    动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.”

    Tomcat中的情况.

    如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:

    File f = new File(“.”);

    String absolutePath = f.getAbsolutePath();

    System.out.println(absolutePath);

    那么输出的将是tomcat下的bin目录.我的机器就是” D:\work\server\jakarta-tomcat-5.0.28\bin\.”,由此可以看出tomcat服务器是在bin目

    录下启动jvm的.其实是在bin目录下的” catalina.bat”文件中启动jvm的.

    转载于:https://www.cnblogs.com/zlfly/p/4609710.html

    展开全文
  • Qt 相对路径 绝对路径

    万次阅读 2016-08-18 10:47:43
    绝对路径: app.applicationDirPath() : 这个获取的就是一个绝对路径,是程序运行时的绝对路径,如果是debug模式,绝对路径定位到debug文件 QDir::currentPath();...相对路径: 我们一般是用 “.

    绝对路径:

    app.applicationDirPath() : 这个获取的就是一个绝对路径,是程序运行时的绝对路径,如果是debug模式,绝对路径定位到debug文件
    QDir::currentPath();这个获取的是工作目录的绝对路径。在工程中点击运行获取的是下面设置的路径。但是如果在debug直接点击运行,获取的是当前程序的路径。


    相对路径:

    我们一般是用 “./” 和 “:/”。首先我们来看看“./”。

    “./”:

    我们首先要考虑的是这个相对的是哪个路径,这个是工作目录的路径,也就是QDir::currentPath()的路径。

    注意:QDir::currentPath()的路径是会变的,如果在工程中是工程目录的路径,假如是非工程中,直接运行,获取的是程序的路径,所以一般不使用“./”来获取路径,这时候可以用Qt的qrc来加载。下面我们来看看“:/”。

    :/”:这个比较简单,就是qrc里面的路径加上“:/”就好了。如下图,我么可以这样用:

    QFile f(":/gui/stylesheets/black.css");



    展开全文
  • os 库 相对路径绝对路径

    千次阅读 2019-05-25 09:33:56
    python中绝对路径相对路径 在写工程使,最好使用相对路径,这样在工程迁移到别的地方时,避免报错。 需要用到os 库 os.path.abspath 表示 获得文件当前路径 os.path.dirname 表示 获得文件的父目录 见博客 ...
  • 相对路径 E:\HTML\sample\img\1.jpg"
  • 温故知新 首先要清楚一个概念: 转发是在服务器内部转发,浏览器与服务器进行一次交互,页面url不变...转发: 会造成相对路径失效.因为在服务器内部进行一次转发以后当前浏览器的url所在的html与服务器内部文件所在的htm...
  • 1.相对路径:(动态网站几乎不用) 相对于当前文件所在的路径查找目标文件 2.绝对路径 http://服务器名或IP:端口号/网站内的具体地址 Servlet----JSP: http://127.0.0.1:8080/testjsp/index.jsp ...
  • linux的相对路径 绝对路径详解

    千次阅读 2018-09-09 21:09:28
    绝对路径:必须以/开头 相对路径:格式1:文件夹/文件 格式2: ./文件夹/文件 格式3: ../文件夹/文件 格式1和格式2一样, 格式3中的..代表返回上一级目录 文件夹结构 home  liufeiyang  liufeiyang1  hello....
  • 首先说第一个问题:帝国cms 图片相对路径绝对路径设置问题 这个是直接在后台可以设置的: 系统--系统设置--系统参数设置--基本属性--修改附件地址-- /d/file/(相对路径) http://www.qyhongyan.com/d/file/(绝对...
  • 这个path可以是绝对路径,也可以是相对路径。 如果要使用绝对路径,前边一定要有"/"; 如果要使用相对路径,前边一定不要有"/"; 比如:我设置我的SFTP根目录是【/home/TestFTPfolder】,他下边有一个【file】...
  • 相对路径绝对路径分析

    千次阅读 2014-09-25 22:37:46
    spring 1....使用绝对路径需要添加file前缀 ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{  "file:D:/MyEclipse/studyspaces/webpro/WebRoot/WEB-INF/conf/ap
  • 相对路径-以引用文件之网页所在位置为参考基础,而建立出的目录路径。...其实绝对路径相对路径的不同处,只在于描述目录路径时,所采用的参考点不同。由于对网站上所有文件而言,根目录这个参考点对所有文件...
  • JS中的URL 相对路径 绝对路径

    千次阅读 2016-09-29 23:25:31
    JS中的 等等都有 href属性  的src属性都要用到路径 看百度首页源代码什么类型...可以是绝对路径 也可以是相对路径 1.绝对路径时 href属性值是URL( uniform Resouce Locator 统一资源定位器) 对文档资源什么的寻址
  • 概念的理解 绝对路径: ...相对路径:相对与某个基准目录的路径 Servlet中,"/"代表Web应用的跟目录。和物理路径的相对表示。例如:"./" 代表当前目录, "../"代表上级目录 关于JSP/Servle
  • React—引入图片 1、新建文件夹 src=》common=》images ...2、相对路径 Pic.js // 封装的一个组件 class Pic extends React.Component{ render () { return ( <div className="pic"> <img cla...
  • 假设db文件放到src/db文件夹下 使用相对路径连接sqlite # 数据库连接jdbc.jdbc-url=jdbc:sqlite::resource:db/app.db#...使用绝对路径连接 # 数据库连接jdbc.jdbc-url=jdbc:sqlite:E:\\相对路径\\goods.db# 连接驱动j
  • 相对路径绝对路径等问题。同时,对于Web应用中的相对路径绝对路径,以及Java.io.File 类学习了一下。也找了一些资料。希望大家遇到类似的问题,可以更有效的解决。 =======================================...
  • 同一tomcat部署多个项目,相对/绝对路径引起的问题示例
  • 相对路径-以引用文件之网页所在位置为参考基础,而建立出的目录路径。... 其实绝对路径相对路径的不同处,只在于描述目录路径时,所采用的参考点不同。由于对网站上所有文件而言,根目录这个参考
  • 第一:dw给的都是相对路径。在dw cs5中设计页面的时候,如果当前路径是WebRoot/jsp 当页面要访问WebRoot/img中的图片的时候Dw给的路径一般是../img/***.jpg 表示同当前路径回到上一级页面然后进入img访问图片但是这...
  • 03 linux _ls命令和相对路径绝对路径_

    千次阅读 2018-06-05 15:21:25
    history查看历史命令 可以方向键上下查看之前的...相对路径绝对路径 以"/"开头的路径为绝对路径 不是以"/"开头的路径为相对路劲 创作不易,希望各位大佬可以资助下,有时间我会把剩下的一系列课程出完。  .
  • 1.相对路径 . 当前目录 .. 当前目录的上一级目录 - 在临近的两个目录直接切换 2.绝对路径 watermelon@watermelon-computer:~$ watermelon:代表当前登录用户 @:代表在 watermelon-computer:代表主机名 ~...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,709
精华内容 9,483
关键字:

相对路径绝对路径