仓酷云

标题: ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合... [打印本页]

作者: 山那边是海    时间: 2015-1-16 22:21
标题: ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)</p>弁言
ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...
登录/注册后可看大图
在做文件路径处置时,常常必要对一个路径的绝对路径举行操纵,那末怎样拼合绝对路径以天生新的相对路径呢?
Path.Combine()办法我们晓得System.IO.Path是专门用来处置路径的静态类,它有一个Combine()办法就是用于拼接路径的,我们来测试一下其拼接效果。
我们利用一个命令路程序举行测试,这里要测试相对文件C:abc123avatar.html的一系列绝对路径,测试代码以下:
classProgram
{
staticstringpath=@"C:abc123avatar.html";
staticvoidMain(string[]args)
{
Console.WriteLine(path);
Console.WriteLine("输出绝对路径以完成兼并:");
Console.WriteLine();
while(true)
{
Console.WriteLine("兼并为:"+兼并路径(Console.ReadLine()));
Console.WriteLine();
}
}
privatestaticstring兼并路径(stringp)
{
returnPath.Combine(Path.GetDirectoryName(path),p);
}
}
个中“兼并路径”办法的功效是先猎取文件的地点目次,再与绝对路径拼合。
测试了局:
ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...
登录/注册后可看大图

能够看到,惯例的路径拼合没有成绩,可是输出“..”就没有被准确处置为下级目次,而是间接举行了兼并,这不是我希冀看到的。
如何做才干撑持“..”情势的绝对路径呢?
使用Uri工具的机关函数我发明Uri工具在机关时能够传进一个基于的Uri及一个绝对路径以机关为新的Uri,而我们能够以“file://……”的情势来暗示当地文件路径,让我们修改一下代码,举行一下绝对Uri的拼合测试。
修改后的代码:
classProgram
{
//staticstringpath=@"C:abc123avatar.html";
staticstringpath=@"file:///C:/abc/123/avatar.html";
staticvoidMain(string[]args)
{
Console.WriteLine(path);
Console.WriteLine("输出绝对路径以完成兼并:");
Console.WriteLine();
while(true)
{
//Console.WriteLine("兼并为:"+兼并路径(Console.ReadLine()));
Console.WriteLine("兼并为:"+兼并Uri(Console.ReadLine()));
Console.WriteLine();
}
}
privatestaticstring兼并路径(stringp)
{
returnPath.Combine(Path.GetDirectoryName(path),p);
}
privatestaticstring兼并Uri(stringp)
{
returnnewUri(newUri(path),p).AbsoluteUri;
}
}
测试了局:
ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...
登录/注册后可看大图

好极了,完善撑持“../”情势的绝对路径!
完美那末接上去的事情就是将路径转换为Uri情势,然后拼合绝对路径,再转换回路径情势就能够了。
转换的时分仅仅是接纳字符串处置的办法,修改后的代码以下:
classProgram
{
staticstringpath=@"C:abc123avatar.html";
staticvoidMain(string[]args)
{
Console.WriteLine(path);
Console.WriteLine("输出绝对路径以完成兼并:");
Console.WriteLine();
while(true)
{
Console.WriteLine("兼并为:"+兼并路径(Console.ReadLine()));
Console.WriteLine();
}
}
privatestaticstring兼并路径(stringp)
{
returnnewUri(newUri("file:///"+path.Replace("","/")),p.Replace("","/")).AbsoluteUri.Substring(8).Replace("/","");
}
}
测试了局:
ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...
登录/注册后可看大图

结语了局很使人中意,但我总以为这是个土方剂、盗窟举措,谁有更烦琐、正统点的办法吗?
感激天方这么快就提出了正统的写法:Path.GetFullPath(Path.Combin(@"C:ac","...text"));
我之前找了那末久,又折腾那末久,才弄出个盗窟的来,其实汗颜啊,呵呵。
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。
作者: 飘灵儿    时间: 2015-1-16 23:51
标题: ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
作者: 小魔女    时间: 2015-1-20 12:38
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
作者: 深爱那片海    时间: 2015-1-29 07:09
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
作者: 透明    时间: 2015-2-14 09:47
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
作者: 因胸联盟    时间: 2015-3-4 05:26
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
作者: 飘飘悠悠    时间: 2015-3-11 17:31
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
作者: 柔情似水    时间: 2015-3-27 07:10
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2