【问题标题】:FileInfo Array From Strings来自字符串的 FileInfo 数组
【发布时间】:2011-10-14 13:18:29
【问题描述】:

目前我正在使用以下方法获取文件的大小:

FileInfo fileSize = new FileInfo(@"C:\file.txt");
long size = fileSize.Length;

我认为您必须能够使用数组并遍历它们,而不是对我想要的每个文件都这样做,所以我使用了这个:

FileInfo[] fileSizes = new FileInfo[2];
fileSizes[0] = @"C:\file.txt";
fileSizes[1] = @"C:\file.txt";

现在我不断收到错误消息“无法将类型 'string' 隐式转换为 'System.IO.FileInfo'”。我尝试使用 .ToString() 但没有骰子,非常感谢任何帮助,谢谢!

【问题讨论】:

  • fileSizes[0] = new FileInfo(@"C:\file.txt");你需要更多的咖啡 :D 和 fileSizes[2] 超出范围
  • 谢谢,我不敢相信我从来没有这样做过,是的,我这样做了:)

标签: c# arrays fileinfo


【解决方案1】:

您不应将多个文件存储在 FileInfo 数组中。要修复您的错误,您需要执行以下操作:

FileInfo[] fileSizes = new FileInfo[3];
fileSizes[0] = new FileInfo(@"C:\file.txt");
fileSizes[1] = new FileInfo(@"C:\file.txt");
fileSizes[2] = new FileInfo(@"C:\file.txt");

但是,您应该像这样(如下)存储它们并遍历列表并一次加载一个FileInfo

String[] files = new String[3];
files[0] = @"C:\file.txt";
files[1] = @"C:\file.txt";
files[2] = @"C:\file.txt";

foreach (String file in files)
{
    FileInfo info = new FileInfo(file);
    // do something with info.Length
}

【讨论】:

  • 因一个错误关闭? FileInfo[] fileSizes = new FileInfo[2]; 应该是 FileInfo[] fileSizes = new FileInfo[3];
  • 那是我的错,我不小心把它超出了范围,他只是在复制我的代码+1
  • 循环正是我打算做的,非常感谢。
【解决方案2】:
FileInfo[] fileSizes = new FileInfo[3];
fileSizes[0] = new FileInfo(@"C:\file.txt");
fileSizes[1] = new FileInfo(@"C:\file.txt");
fileSizes[2] = new FileInfo(@"C:\file.txt");

@"C:\file.txt" 是一个字符串,而不是对象本身..

【讨论】:

    【解决方案3】:

    @"C:\file.txt"; 替换为new FileInfo(@"C:\file.txt");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-19
      • 2020-03-06
      • 2018-02-13
      • 1970-01-01
      • 2023-03-08
      • 2013-01-03
      • 2012-04-24
      • 1970-01-01
      相关资源
      最近更新 更多