惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
S
SegmentFault 最新的问题
Jina AI
Jina AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
美团技术团队
V
Visual Studio Blog
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
有赞技术团队
有赞技术团队
GbyAI
GbyAI
宝玉的分享
宝玉的分享
腾讯CDC
M
MIT News - Artificial intelligence
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
月光博客
月光博客
MyScale Blog
MyScale Blog
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
Recent Announcements
Recent Announcements
MongoDB | Blog
MongoDB | Blog

博客园 - Clark Chan

『iOS小案例』 类型转换失败(use of undeclared identifier) 『iOS学习笔记』 UIButton-1 『iOS学习笔记』 - 变量 属性 方法 实现 『iOS学习笔记』 - Hello Word 博文阅读密码验证 - 博客园 C#-计算相对路径 - Clark Chan - 博客园 Windows Vista 睡眠后鼠标死机几分钟 bat批处理文件的执行过程有趣 Windows XP 文件删除之后在回收站找不到文件 Windows XP 从“我的电脑”删除共享文档: Windows XP KB913433补丁(FlashPlayer)无法安装的解决办法 Windows XP 回收站已损坏的解决办法 TreeView右键选中节点。 XmlTextWriter.WriteString与WriteRaw的区别 字符串转换成枚举值 转载:MDA的一些资源的连接 转载:模型驱动架构 C#生成Xml字符串 [转载][求助]在C#中调用JetCar.Netscape的问题?
【原创源码】(05):C#-计算绝对路径。 - Clark Chan - 博客园
Clark Chan · 2008-07-20 · via 博客园 - Clark Chan

【原创源码】(05):C#-计算绝对路径。

欢迎大家发表意见(漏洞,性能等)。在博客园社区以外转载请注明作者和出处。谢谢

 
        
/// <summary>
        
/// 计算绝对路径
        
/// </summary>
        
/// <param name="absoluteDir">绝对目录</param>
        
/// <param name="relativeFile">相对文件</param>
        
/// <returns></returns>
        
/// <example>
        
/// @"D:\Windows\regedit.exe" = GetAbsolutePath(@"D:\Windows\Web\Wallpaper\", @"..\..\regedit.exe" );
        
/// </example>

        public static string GetAbsolutePath(string absoluteDir, string relativeFile)
        
{
            
bool isNotOver = true;
            
int intStart = 0;
            
while (isNotOver)
            
{
                
if (relativeFile.StartsWith(@"..\"))
                
{
                    relativeFile 
= relativeFile.Remove(03);
                    intStart
++;
                }

                
else
                
{
                    isNotOver 
= false;
                }

            }


            
if (intStart > 0)
            
{
                
if (absoluteDir.EndsWith("\\"))
                
{
                    absoluteDir 
= absoluteDir.Remove(absoluteDir.Length - 1);
                }


                
for (int i = 0; i < intStart; i++)
                
{
                    absoluteDir 
= absoluteDir.Remove(absoluteDir.LastIndexOf("\\"));
                }

            }

            
return Path.Combine(absoluteDir, relativeFile);
        }

 

下面这个方法效率是楼上的1/50。。。
public static string GetAbsolutePath(string dir, string path)
{
string strDir = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(dir);
string strNew = Path.GetFullPath(path);
Directory.SetCurrentDirectory(strDir);
return strNew;
}
80720.jpg