[英]How to locate relative file path when using GetFiles() in C#?
我發現了一些相關的問題,但它們的效果不佳。 圖像名稱是經過修改的GUID,例如3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0
但擴展名未知(.jpg,.gif,.. 3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0
)。 GUID將來自gridview,因此它不是靜態字符串。 以下是我所擁有的,但是我很難獲得正確工作的路徑。
string fileName = `3c6b4a9b-8e88-4c8e-93da-258acd2c964f`;
DirectoryInfo filePath = new DirectoryInfo(@"/Images");
MessageBox.Show(filePath.ToString());
FileInfo[] fileArray = filePath.GetFiles(fileName + "_0.*");
不斷出現目錄無效的問題。 當前,文件存儲在我的c:驅動器上。
如何在不進行硬編碼的情況下獲得相對路徑? 我在用DirectoryInfo(Server.MapPath("Images"));
暫時起作用的文件,然后開始出現此錯誤
System.ArgumentException: Second path fragment must not be a drive or UNC name.
這似乎是從具有驅動器“ C:”的路徑
開始的,但是,一旦站點啟動,這似乎不是永久性的解決方案。
實際路徑為C:\\Website\\Name\\Images\\3c6b4a9b-8e88-4c8e-93da-258acd2c964f_0.jpg
謝謝!
您已將filePath
用作GetFiles
的第一個參數,只需使用通配符並使用一個參數調用GetFiles
。
filePath.GetFiles("_0.*");
問題是您正在獲取“ C:\\ Images”的DirectoryInfo
。
您想使用Server.MapPath
來獲取網站中文件夾的物理路徑(該文件夾可以在任何驅動器上的任何位置)。
使用~
表示從正在運行的網站的根目錄開始。
因此,這應該可以解決問題:
string fileName = `3c6b4a9b-8e88-4c8e-93da-258acd2c964f`;
DirectoryInfo filePath = new DirectoryInfo(Server.MapPath("~/Images"));
FileInfo[] fileArray = filePath.GetFiles(fileName + "_0.*");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.