And*_*ock 3 c# path relative-path
我有一个可以在桌面应用程序和asp.net网站上使用的assmebly.
在任何一种情况下我都需要处理相对路径(本地文件,而不是URL).
我该如何实现这种方法?
string ResolvePath(string path);
Run Code Online (Sandbox Code Playgroud)
在web环境下,id期望该方法的行为如下(d:\wwwroot\mywebsiteiis指向的文件夹在哪里):
/folder/file.ext => d:\wwwroot\mywebsite\folder\file.ext
~/folder/file.ext => d:\wwwroot\mywebsite\folder\file.ext
d:\wwwroot\mywebsite\folder\file.ext => d:\wwwroot\mywebsite\folder\file.ext
Run Code Online (Sandbox Code Playgroud)
对于桌面环境:( c:\program files\myprogram\bin\.exe的路径在哪里)
/folder/file.ext => c:\program files\myprogram\bin\folder\file.ext
c:\program files\myprogram\bin\folder\file.ext => c:\program files\myprogram\bin\folder\file.ext
Run Code Online (Sandbox Code Playgroud)
我宁愿不IPathResolver根据它的运行状态注入不同的东西.
如何检测我所处的环境,然后在每种情况下我需要做什么来解决可能相对的路径?
谢谢
我不认为原来的问题得到了回答.
假设你想要"..\..\data\something.dat"相对于,让我们说"D:\ myApp\source\bin \"中的可执行文件.运用
System.IO.Path.Combine(Environment.CurrentDirectory,relativePath);
将简单地返回"D:\ myApp\source\bin ..\..\data\something.dat",这也可以通过简单连接字符串轻松获得.组合不解析路径,它处理尾随反斜杠和其他琐事.他可能想跑:
System.IO.Path.GetFullPath( "d:\对myApp \源\ BIN ..\.. \数据\ something.dat");
获取已解析的路径:"D:\ myApp\data\something.dat".
| 归档时间: |
|
| 查看次数: |
5858 次 |
| 最近记录: |