【问题标题】:ASP.net get files excluding root folderASP.net 获取不包括根文件夹的文件
【发布时间】:2017-09-28 12:06:31
【问题描述】:

我想从文件夹内的文件夹/子文件夹中获取文件路径并将其填充到图像属性中。使用HttpContext.Current.Server.MapPath(@"~\StorageFolders");将返回完整路径并将返回

不允许加载本地资源

.

所以现在我正在使用循环和替换方法。我做得对吗? 或者我可以只获得不包括根文件夹的完整路径 例子 : 函数返回

C:\WebsiteRootFolder\Myfolder\SubFolderA\handsome.png

相对

我的文件夹\子文件夹A\handsome.png

总是回到网站的根目录

 var fileList = Directory.GetFiles(path, "*", SearchOption.AllDirectories).ToList();
        var rootpath= HttpContext.Current.Server.MapPath("~");

foreach (var item in fileList)
        {
            string s = item.Replace(rootpath, "");
            Image image = new Image();
            image.ImageUrl = ResolveUrl(@"~\"+ s);
            //continue of codes
        }

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    访问被拒绝:

    您没有该特定文件夹的permission 权限。确保您必须将权限更改为 full access 到该文件夹​​。

    【讨论】:

    • 文件夹已经完全访问。我重新发布了错误。错误不是因为许可。是网站的工作方式,不允许直接访问文件。
    【解决方案2】:

    【讨论】:

    • 这将返回完整路径。我想返回相对路径。例如路径返回 c:/website/folderA/img.png 我只希望它返回 FolderA/img.png
    • 对不起,我误解了这个问题。这有帮助吗:stackoverflow.com/a/703292/2788979
    • 您好,感谢您的帮助。我设法用 linq 替换了该行
    【解决方案3】:

    而不是使用

    var fileList = Directory.GetFiles(path, "*", SearchOption.AllDirectories).ToList();
    

    我改成

      var fileList = Directory.GetFiles(path, "*", SearchOption.AllDirectories).Select(x => (new FileInfo(x).FullName.Replace(root, ""))).ToArray();
    

    【讨论】:

      猜你喜欢
      • 2015-01-25
      • 2019-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-20
      相关资源
      最近更新 更多