亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Directory.GetFiles 在任何平臺上都帶有“/”

Directory.GetFiles 在任何平臺上都帶有“/”

C#
紅顏莎娜 2022-07-10 10:17:47
我試圖在每次生成字符串時使用'/'charDirectory.GetFiles或不替換字符串來獲取路徑。即使我有一些宏告訴他在特定操作系統上使用 AltSeperator,Directory.GetDirectories我也會簡單地要求庫用作目錄分隔符。'/'
查看完整描述

2 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

不幸的是,這似乎是不可能的。

Path.DirectorySeparatorCharPath.AltDirectorySeparatorChar取決于您的應用程序運行的操作系統,并且是只讀的。

根據文檔 DirectorySeparatorChar\Windows 和/其他任何地方,并且Path.AltDirectorySeparatorChar(當前)總是/.



查看完整回答
反對 回復 2022-07-10
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

一般技術:


string MyPathCombine(string basename, string filename)

{

    int idx = basename.Length;

    if (idx == 0) return filename;

    if (basename[idx - 1] == '/') --idx;

    return filename;

}



IEnumerable<string> GetFilesSlash(string dirname)

    => Directory.GetFiles(dirname.Replace('/', Path.DirectorySeparatorCharacter)).Select((p) => MyPathCombine(dirname, Path.GetFileName(p));

如果你所有的路徑都來自真實系統,這種更簡單的形式會起作用,但如果有任何來自另一個系統,它就不會,因為你可能會被\角色毒化。然而,這并不是唯一的危險。從這里開始變得顛簸。


IEnumerable<string> GetFilesSlash(string dirname)

    => Directory.GetFiles(dirname.Replace('/', Path.DirectorySeparatorCharacter)).Select((p) => p.Replace(Path.DirectorySeparatorChar, '/'));



查看完整回答
反對 回復 2022-07-10
  • 2 回答
  • 0 關注
  • 215 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號