如何用C#得到「相對根目錄」?
01-19
如題,有兩個存儲目錄信息的字元串,分別是:
X:aaabbcccfff.aviX:aaabbcccdddggg.mp3現在需要弄個啥東西,以「ccc」為根目錄,弄成這樣:
cccfff.avicccdddggg.mp3請問各位大神有沒有什麼簡便方法可以實現?我現在的想法是把這倆String搞成char數組,然後寫個for循環,挨個對比,比到指定位置停下來剪掉不要的,留下需要的部分,但這樣似乎太慢了,有沒有更好的辦法?
先感謝兩位大神回復,這裡的公共路徑部分(X:aaabb)會變化,是讓用戶去選的,不是寫在源碼釘死的,所以比較困難,StartsWith不好確定這個公共部分,正在研究如何解決中……
1、split by "\"
2、算一下那個數組比較短3、for一下挨個比
或者
a.Split("\").Zip(b.Split("\"), Tuple.Create).TakeWhile(p=&>p.Item1==p.Item2).Select(p=&>p.Item1)
.Aggregate((a,b)=&>a+""+b)這種基本編程題完全應該自己想。
index = -1;
for i = 0 to min(len(x), len(y))
if (x[i] != y[i])
break;
if (x[i] == "\")
index = i;
String 類?(System)StrartWithSubstring
linq版,手機打字String.Join(path.spilt(@"").Skip(2).ToArray())
我也不知道為什麼要這樣搞,或許是我的理解有差異,亦或者是你的思路有問題。首先問問這個問題,如果有兩個地址字元串:X:aaabbcccdddggg.aviX:aaabbcccdddhhh.mp3這個時候你想要獲取的是X:aaabbccc還是X:aaabbcccddd?如果是前者,我可以理解為你搞了一個應用程序,然後想得到這個程序的安裝目錄,對嗎?如果是,你可以在安裝的時候將程序目錄寫入註冊表呢,或者加入環境變數也行,或者用主程序在運行中去獲取目錄也行啊。如果是後者,那就先切割一個較短目錄(考慮到文件名問題,所以要用目錄,不能要文件名)的字元串,然後檢查是否在另一個裡面,然後再拼接起來
https://github.com/dpull/UnityUtils/blob/master/IO.cs
幾年前寫過一個,最下面化成char數組,兩個數組元素挨個異或,直到出現1所在的\部分。
PathRelativePathTo function (Windows)
字典樹?
string - how to extract common file path from list of file paths in c#這個帖子應該有幫助
推薦閱讀:
※iPad 上有哪些源代碼閱讀軟體?
※程序員會寫文章嗎?
※大家編寫程序時最喜歡的是什麼字體?
※如果一個程序員工作5年後還沒成為大牛,是不是該考慮別的路子了?
※自學編程的難度如何?
TAG:微軟Microsoft | 編程 | 計算機 | NET | C# |