Следующая строка не является допустимым именем файла.
"File name\r\n\t\t\t\t\r\n\t\t\t\t (Revised 2018-05-31 15:35:41.16).txt"
Следующий код преобразует его в действительное имя файла.
let fn = """File name
(Revised 2018-05-31 15:35:41.16).txt""";;
let invalid = System.IO.Path.GetInvalidFileNameChars();;
String.Join("",
fn |> Seq.filter(fun x ->
not (Array.exists (fun y -> y = x) invalid)
)
)
// "File name (Revised 2018-05-31 153541.16).txt"
Он просто удаляет эти недопустимые символы.Как преобразовать эти недействительные в _
?Для этих нескольких недопустимых последовательных символов я хочу, чтобы они были заменены только на один _
.Таким образом, ожидаемый результат должен быть
"File name_ (Revised 2018-05-31 15_35_41.16).txt"