如题,现有目录路径A和目录路径B,如何算出B相对于A的位置?(假定A与B都处于同分区下)
解决方案 »
- winform做QQ的聊天窗口,用RichTextBox控件,内容能发送,但是不能显示,求教
- C# winform 怎么获取登陆后才能进入的网页以提取信息
- 如何用循环取出控件textbox的值
- 什么是 对象实例化的类代理方法?
- 抓取问题!!好贴!
- 关于dbf数据读取问题
- C#中的Excel编程
- datagrid如何把COLUMN的HEAD固定,让它不能拖动大小
- USB的问题,如何知道向U盘中拷贝的什么文件,如何区分USB插入的是U盘还是鼠标
- 到處亂髮C#必敗的傻小子聽好了~~~
- Datetime.Parse 如何按照自定义格式转换string 到 Datetime.
- C#控制台应用程序的几个问题
D:\abc\opq\rst做字符串分割操作(\)
上面得到字符串数组A
0 D:
1 abc
2 def
3 ghi
下面得到字符串数组B
0 D:
1 abc
2 opq
3 rst
然后比较嘛……先找出一样的到哪里
如上面找到1 abc
那么B相对于A的路径就是
B[2] - B[3] 两个..\ (我记得上级目录是这样表示)
再加上A[2] + "\" + A[3]大概这样能实现吧……
string pathb= "C:\\aaa\\bbb\\ccc\\ddd\\eee\\fff";
pathb = pathb.Replace(patha + "\\", "");
string temp = pathb.Replace("\\", "");
int n = pathb.Length - temp.Length;
pathb = pathb.Substring(pathb.LastIndexOf("\\")+1);
for (int i = 0; i < n; i++)
{
pathb = "..\\" + pathb;
}
Console.WriteLine("pathb的相对路径是:"+pathb);编译通过...
是不是
string A = @"C:\a\b\c";
string B = @"C:\a\b";
B相对于A的位置: @"..\"string B = @"C:\a\b\c";
string A = @"C:\a\b";
B相对于A的位置: @"\c"这样的话,代码如下string A = @"C:\a\b\c";
string B = @"C:\a\b";
string temp = "";
string[] a = A.Split('\\');
string[] b = B.Split('\\');if (a.Length > b.Length)
{
int n = a.Length - b.Length;
for (int i = 0; i < n; i++)
{
temp += @"..\";
}
}
else
temp = B.Replace(A, "");temp即所求