什麼是確定給定字符串是否是文件名或不在c#中的方法?確定字符串是否是c#中的文件名
-2
A
回答
0
如果你要檢查它是否是一個有效的文件名,你可以嘗試檢查不允許的字符
bool IsValidFilename(string testName)
{
Regex containsABadCharacter = new Regex("[" + Regex.Escape(System.IO.Path.InvalidPathChars) + "]");
if (containsABadCharacter.IsMatch(testName) { return false; };
return true;
}
我認爲這是合適的,因爲文件名可以是相當奇特的,仍然是有效的文件名。
2
,如果你的意思是不給定的字符串存在作爲文件名,然後在這裏你去:
var file = "myfile.txt";
var fileExists = System.IO.File.Exists(file);
如果你的意思是沒有這個字符串符合Windows標準的文件名命名約定,那麼:
var file = "mybadfile<\\/.txt";
var invalidFileChars = System.IO.Path.GetInvalidFileNameChars();
var isInvalidFilename = invalidFileChars.Any(s => file.Contains(s));
1
也許System.IO.File.Exists(givenStr)
,這取決於你的意思。
如果你想知道如果givenStr
沒有非法字符,也許使用!System.IO.Path.GetInvalidFileNameChars().Intersect(givenStr).Any()
(只是因爲其他人都在他們的答案中包括這一點)。
1
最好的辦法是測試字符串是否對應於使用System.IO.File.Exists(...)
的實際文件名。
文件名不符合規定的模式。 Document.doc
將是一個有效的文件名,但asdfasdfasdf234234
和樹
也是如此。
1
字符串可能的唯一途徑不是是一個有效的文件名是否包含Path.GetInvalidFileNameChars()
中的一個字符。只要它沒有任何非法字符,它就是合法的文件名。
如果您好奇,如果在該位置有實際文件,那麼您可以使用File.Exists
。
相關問題
- 1. 確定字符串是否是文本中的專有名詞
- 2. C#確定字符串中的所有字符是否相同
- 3. C++ - 確定給定的字符串是否只有Furigana字符
- 4. 在C#中,如何確定給定的字符串是否是迴文?
- 5. 確定C字符串是否爲C中的有效整數
- 6. 通過C#確定字符串是否是有效的文件路徑
- 7. 確定字符串是否爲「肯定」?
- 8. 確定給定字符串是否是有效迴文。 JS
- 9. 如何確定字符串中的單詞是否是雙字?
- 10. 如何確定目標C中的字符串是否相等?
- 11. 根據字符串路徑確定文件是否存在於C中
- 12. 如何確定一個字符串是否是C#中的數字
- 13. AWK確定字符串中的所有字符是否相同?
- 14. 確定字符串數組中是否出現多次(C#)
- 15. 我試圖確定一個字符串是否是迴文
- 16. 文本文件中是否有特定的字符串匹配字符串
- 17. 如何確定一個字符串是否是ksh的數字
- 18. AutoHotKey如何確定複製的字符串是否是數字?
- 19. Java確定字符串中的每個字符是否是字母
- 20. 確定字符串是否在字符串內
- 21. 確定字符串是否以另一個字符串結尾
- 22. 如何確定字符串是否是C++中的有效IPv6地址?
- 23. 確定字符串中是否有字符出現在K次
- 24. 確定字符串是否是對本地或外部文件的引用
- 25. Bash確定變量名是否包含一個字符串
- 26. 如何確定字符串是迴文?
- 27. 檢查確切的子字符串是否在字符串中
- 28. 確定字符串的索引是否包含字符
- 29. 確定是否字符串具有獨特的所有字符
- 30. 確定字符串是否有效整數Objective C IOS
你是什麼意思,是一個文件名?我沒有辦法可靠地預測這樣的事情。如果你的意思是「可能並且有一些文件擴展名」,那麼就這麼說:) –
你的意思是字符串是否是* valid *文件名,或者字符串是否與現有文件的名稱匹配? –
是的,我想檢查一個字符串是否可以成爲一個有效的文件名,如果有的話。不是該文件是否在我的系統上找到。 – sarsnake