What is the difference between an absolute and a relative path?

喜你入骨 提交于 2019-12-01 02:57:40
Brad Christie

Say you were giving directions to a spot. You have two methods you can describe getting to the location:

  • Relative to where you stand,
  • Relative to a landmark.

Both get you to the same location, but the former doesn't always work ("take a left, then a right, go through two lights then take another right" wouldn't necessarily work from the next town over, but works from where you stand). That's essentially the difference.

If you have C:\Windows\System32, that's an absolute path. If you have Windows\System32, it will only work so long as you're starting from C:\. If you start in C:\Program Files you would need a ..\ to get there correctly.

However, no matter where you are on the hard drive, C:\Windows\System32\ is a definitive way to get to that folder.

It's actually a simple distinction. A relative file path is going to be a structure based around a root node; and an absolute path is going to be a structure based on a non ambiguous location. That sounds kind of wonky, but it's actually pretty simple.

Here are some examples:

Absolute Paths

 C:\inetpub\yourapplication\default.aspx
 http://www.yourapplication.com/default.aspx

These paths are absolute because they are non ambiguous. Example 1 shows an absolute file path, and example 2 shows an absolute URL.

Relative Paths

./../script/something.js
~/default.aspx

A relative path specifies a location based on some known ahead point of reference. So in example 1, you know to go up one directory, then down into a directory called script, then to a javascript file. In example two, you are specifing the aspx page contained within the root of your application.

So, germane to your specific problem, you want to write a file to a specific absolute path, which means it needs to be a non ambiguous location.

An absolute path is the whole path name required to access the location in the file system.
For example: C:\Program Files\Internet Explorer\iexplorer.exe

Where as a relative path is in relation to some landmark, usually your main executable files location or the 'start in' location set when you open the program.

For example if your main executable is in C:\Program Files\ the relative path to iexplorer.exe is Internet Explorer\iexplorer.exe.

This is done usually when you don't always know where the file will absolutely be, like which drive letter it will be installed in or which folder it will be under.

However for a good example, if your file came with your program and you know your programs installation structure, you can use relative pathing to find all your files no matter where your program is installed as opposed to abolute pathing where your program would need to be installed in the exact same location each time.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!