你的問題是不一致的,這使得它非常不清楚。你想要a file name
還是他們的集合?如果你想filename not like "*.txt"
那麼爲什麼要使用「1.txt」爲GetFiles
?
這將回答標題問題How to get a filename without using for next
。爲此,假設一個完整的「.json」文件的目錄。一些命名爲cs ###。json(例如cs001.json
)有些命名爲vb ###。json等等。
Path
可以讓你檢查部分文件名,但DirectoryInfo
將通過FileInfo
對象提供對某些信息的訪問。這使用EnumerateFiles
能夠過濾掉不需要的文件,所以它們甚至不會返回到您的代碼/數組變量。
Dim dix As New DirectoryInfo("C:\Temp\Json")
獲取不以CS啓動的json文件。這將返回的FileInfo對象的數組的情況下,你需要做進一步排除:
Dim jFile = dix.EnumerateFiles.Where(Function(f) f.Extension = ".json" AndAlso
f.Name.StartsWith("cs") = False).
ToArray()
獲取這些「* 1.json」,不與「CS」啓動JSON文件。在這種情況下,最後Select
方法將導致返回文件名的數組:
Dim jFile = dix.EnumerateFiles.Where(Function(f) f.Extension = ".json" AndAlso
f.Name.EndsWith("1.json") AndAlso
f.Name.StartsWith("cs") = False).
Select(Function(q) q.Name).
ToArray()
更改Select
爲「功能(Q)q.FullName`如果你想的全路徑名。這些應該接近你真正想要的東西。
你能澄清嗎?你**不需要** * .txt文件? – Plutonix
很難說你實際上正在做什麼......顯然在你的例子中文件名是「1.txt」,但是如果文件存在,你只會循環,所以也許你正在尋找類似於'Dim fi =新的FileInfo(「C:\ 1.txt」):如果fi.Exists然後昏暗strFilename = fi.Name ...'? – Mark
是馬克,同樣我也希望得到同樣的,你能不能詳細請 – Gopal