簡體   English   中英

在C#中使用GetFiles()時如何定位相對文件路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM