我正在编写一个控制台实用程序来对命令行上指定的文件进行一些处理,但是我遇到了一个我无法通过Google/Stack Overflow解决的问题.如果指定了完整路径(包括驱动器号),如何将该路径重新格式化为相对于当前工作目录?
必须有类似于VirtualPathUtility.MakeRelative函数的东西,但如果有,它就会让我失望.
有没有直接的方法(通过使用cmdlet或.NET类)来获取给定路径中子文件夹中文件的相对路径?
例如,当前文件夹是C:\MyScript并没有所谓的子文件夹Data与文件Test.txt,所以我想看到Data\Test.txt的,而不是C:\MyScript\Data\Test.txt
我有两个绝对文件系统路径(A和B),我想生成第三个文件系统路径,表示"B的相对".
使用案例:
boost::filesystem似乎必须complete解决relative ~ relative => absolute,但在reverse(absolute ~ absolute => relative)中没有做任何事情.
我想用Boost路径来做.
我希望有一个内置的.NET方法来做到这一点,但我找不到它.
我知道有两条路径位于同一个根驱动器上,我希望能够获得从一个到另一个的相对路径.
string path1 = @"c:\dir1\dir2\";
string path2 = @"c:\dir1\dir3\file1.txt";
string relPath = MysteryFunctionThatShouldExist(path1, path2);
// relPath == "..\dir3\file1.txt"
Run Code Online (Sandbox Code Playgroud)
这个功能存在吗?如果不是最好的实现方式是什么?
例如,我该怎么做呢
"C:\RootFolder\SubFolder\MoreSubFolder\LastFolder\SomeFile.txt"
Run Code Online (Sandbox Code Playgroud)
相对于此文件夹
"C:\RootFolder\SubFolder\"
Run Code Online (Sandbox Code Playgroud)
如果预期的结果是
"MoreSubFolder\LastFolder\SomeFile.txt"
Run Code Online (Sandbox Code Playgroud) 我有2个文件:
C:\Program Files\MyApp\images\image.png
C:\Users\Steve\media.jpg
Run Code Online (Sandbox Code Playgroud)
现在我想计算相对于文件1的文件2的文件路径(media.jpg):
..\..\..\Users\Steve\
Run Code Online (Sandbox Code Playgroud)
.NET中是否有内置函数来执行此操作?
我从OpenFileDialog获取一个文件,该文件返回一个字符串,其中包含所选文件的绝对路径.现在我希望该路径作为给定路径的相对路径(在这种情况下是我的应用程序的路径).
所以我想说我得到了一个文件的路径:
c:\myDock\programming\myProject\Properties\AssemblyInfo.cs
我的申请位于
c:\myDock\programming\otherProject\bin\Debug\program.exe
然后我想要结果:
..\..\..\myProject\Properties\AssemblyInfo.cs
在C#中是否存在一个方法来获得给定两个绝对路径输入的相对路径?
那就是我有两个输入(第一个文件夹作为基础),如
c:\temp1\adam\
Run Code Online (Sandbox Code Playgroud)
和
c:\temp1\jamie\
Run Code Online (Sandbox Code Playgroud)
那么输出就是
..\jamie\
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何从绝对路径获取相对路径
我目前正在使用它FolderBrowserDialog来返回绝对路径.我想改为获取相对于当前正在执行的目录的相对路径.鉴于FolderBrowserDialog只返回绝对路径,有没有办法将其转换为相对路径?
我使用asp.net 4和c#.
我有这个代码,可以让我找到图像的物理路径.如你所见,我得到了我的机器物理pagh文件:/// C:.
string pathRaw = HttpContext.Current.Request.PhysicalApplicationPath + "Statics\\Cms\\Front-End\\Images\\Raw\\";
Run Code Online (Sandbox Code Playgroud)
结果:
file:///C:/......../f005aba1-e286-4d9e-b9db-e6239f636e63.jpg
Run Code Online (Sandbox Code Playgroud)
但是我需要在我的Web应用程序的前端显示这个图像,所以我需要这样的结果:
http://localhost:1108/Statics/Cms/Front-End/Images/Raw/f005aba1-e286-4d9e-b9db-e6239f636e63.jpg
Run Code Online (Sandbox Code Playgroud)
怎么做?
PS:我需要转换变量pathRaw的结果.
希望我能够表达自己不幸在这种情况下我不确定术语.
谢谢你的帮助!