【问题标题】:How to store a list of files from disk into an array in C# ASP.NET?如何将磁盘中的文件列表存储到 C# ASP.NET 中的数组中?
【发布时间】:2015-08-10 21:52:45
【问题描述】:

在我的站点中,我需要读取特定目录中的所有文件,将它们存储到列表或某个对象中,然后将它们输出到页面,以便在用户单击它们时下载它们。意思是,我会在页面上将文件的文件名显示为超链接,当用户点击它时,系统会提示他们下载他们点击的任何内容。

我正在使用带有 C# 的 ASP.NET MVC。我想我的模型会是这样的:

public class PageViewModel
{
    public string Username {get; set; }
    //public List FileList {get; set; } ??    
}

然后在我的控制器中,我实际上会执行文件的获取:

public ViewResult SomePage(PageViewModel vm)
{
    vm.Username = "AlbatrossCafe";

    //loop or something that iterates over all files in the folder
    //{
    //    vm.SomeList.push(currentFile);
    //}
}

然后在我看来,我会将它们渲染出来。这部分很简单。

我遇到了一个问题,无法确定将文件存储在哪个对象以及如何从磁盘实际读取它们 .

假设我需要读取桌面上位于以下位置的文件夹中的所有文件:C:\Users\Default\Desktop\file_folder。我应该使用什么对象以及如何从该文件夹将文件读入该对象?

注意事项:

  1. 我不需要文件的实际文本内容
  2. 需要读取指定文件夹中的每个文件

【问题讨论】:

  • 请澄清。你说“用户点击他们被下载”。然后,“我不需要文件的内容”。那么,如果您没有内容,您希望用户如何下载文件?
  • 对不起,我的意思是,例如,如果我读入 .jpg 或其他文件,我可以在页面上将文件名显示为超链接,这样当用户单击它时,系统会提示他们下载.jpg

标签: c# asp.net asp.net-mvc file file-io


【解决方案1】:

您的模型应该看起来像这样。因为您只需要一个名称和一个 URL 即可显示。

Public class Resource
{
    Public string URL {get; set;}
    Public string Name {get;set;}
}

创建一个列表并将名称绑定到您的值,并将 HREF 的 URL 绑定到您的显示元素。

编辑 至于从文件中读取名称,您的控制器应该遍历每个文件夹并提取名称和路径,例如 this

【讨论】:

  • 甜蜜。我实际上使用了Directory.EnumerateFiles,但它几乎是一样的。感谢您的帮助。
猜你喜欢
  • 2022-10-30
  • 1970-01-01
  • 1970-01-01
  • 2018-06-16
  • 2018-10-26
  • 2012-04-14
  • 2022-01-23
  • 2020-09-08
  • 1970-01-01
相关资源
最近更新 更多