仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1025|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...

[复制链接]
山那边是海 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:21:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)</p>弁言 在做文件路径处置时,常常必要对一个路径的绝对路径举行操纵,那末怎样拼合绝对路径以天生新的相对路径呢?
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);
}
}
个中“兼并路径”办法的功效是先猎取文件的地点目次,再与绝对路径拼合。
测试了局:

能够看到,惯例的路径拼合没有成绩,可是输出“..”就没有被准确处置为下级目次,而是间接举行了兼并,这不是我希冀看到的。
如何做才干撑持“..”情势的绝对路径呢?
使用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;
}
}
测试了局:

好极了,完善撑持“../”情势的绝对路径!
完美那末接上去的事情就是将路径转换为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("/","");
}
}
测试了局:

结语了局很使人中意,但我总以为这是个土方剂、盗窟举措,谁有更烦琐、正统点的办法吗?
感激天方这么快就提出了正统的写法:Path.GetFullPath(Path.Combin(@"C:ac","...text"));
我之前找了那末久,又折腾那末久,才弄出个盗窟的来,其实汗颜啊,呵呵。
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-16 23:51:12 | 只看该作者

ASP.NET网页设计ASP.NET教程:相对路径与绝对路径的拼合...

是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
小魔女 该用户已被删除
板凳
发表于 2015-1-20 12:38:58 | 只看该作者
提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。
深爱那片海 该用户已被删除
地板
发表于 2015-1-29 07:09:39 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
透明 该用户已被删除
5#
发表于 2015-2-14 09:47:20 | 只看该作者
最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
因胸联盟 该用户已被删除
6#
发表于 2015-3-4 05:26:55 | 只看该作者
Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-11 17:31:47 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
柔情似水 该用户已被删除
8#
发表于 2015-3-27 07:10:56 | 只看该作者
在asp.net虚拟主机的服务提供商中,目前首推的是CNNIC的其中一家域名注册机构---时代互联(www.now.net.cn),他们早在2001年微软刚推出Asp.net时就推出了对应的Asp.net虚拟主机了,经笔者的使用测试,他提供的Asp.net性能非常的稳定,版本也会定期的更新,目前他的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-8 08:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表