2
コンテンツフォルダ内のファイルへの相対パスをすべてリストする必要があります。ASP.NET MVCのコンテンツフォルダ内のファイルへのすべてのパスを取得
私は動作するものを書いたが、少し脆いようだ。これを行うにはより良い/賢明な方法がありますか?
var contentPaths = GetRelativePathsToRoot("~/Content/").ToList();
private IEnumerable<string> GetRelativePathsToRoot(string virtualPath)
{
var physicalPath = Server.MapPath(virtualPath);
var absolutePaths = Directory.GetFiles(physicalPath, "*.*", SearchOption.AllDirectories);
var relativePaths = new List<string>();
foreach (var absolutePath in absolutePaths)
{
var splittedPath = virtualPath.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
var virtualFolderName = splittedPath[splittedPath.Length -1];
var relativePath = absolutePath
.Substring(absolutePath.IndexOf(virtualFolderName))
.Replace("\\", "/");
relativePaths.Add(Url.Content("~/" + relativePath));
}
return relativePaths;
}
Ow、ありがとう。非常にきれいな。しかし、これは行く方法ですか? – JefClaes
@JefClaes、erm、はい。 –