获取目录计数

时间:2013-07-30 02:32:50

标签: c# visual-studio-2010

我需要一些帮助来处理我在C#中工作的一个小项目。

这是我的代码:

//TO FETCH DIRECTORY TEST
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\Tahmid\Downloads"); 
int count = dir.GetFiles().Length;

我想要它做的就是查看我的“下载”文件夹中有多少文件。

我遇到了2个问题。

  1. 第一个问题是System这个词用绿色下划线标出“检测到无法访问的代码”。

    起初我以为它可能是由我缺少的命名空间引起的,我检查了我的代码并看到我已经有using System.IO;using System;。我认为这两个是目录计数所需要的。

    所以我不明白为什么它的下划线绿色。的xD

  2. 第二个问题是,当我将这两行代码放入我的项目时,会破坏我的代码的另一部分:

    case "switch window":
    SendKeys.Send("%{TAB " + count + "}");
    count += 1;
    break;
    
  3. 我用蓝色下划线标记“使用未分配的局部变量'count'”

    为什么获取目录长度的2行代码打破了这一点,我感到非常困惑。

1 个答案:

答案 0 :(得分:2)

我们需要看到更多代码才能确定答案......但这里有一些可能会有所帮助的想法。

这会导致第一个错误

if (false)
{
   // this code is unreachable... false will never be true.
   //TO FETCH DIRECTORY TEST
   System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(@"C:\Users\Tahmid\Downloads"); 
   int count = dir.GetFiles().Length;
}

第二个错误是因为你在初始化之前使用了计数......就像这样:

int count;
/// ... more code
case "switch window":
  SendKeys.Send("%{TAB " + count + "}");  // uninitialized use.
  count += 1;
  break;

您需要的地方:

int count;
count = 0;  // now count has a value.
/// ... more code
case "switch window":
  SendKeys.Send("%{TAB " + count.ToString() + "}");
  count += 1;
  break;

由第一个引起的第二个是明确的 - 如果代码永远不可访问,那么它将永远不会将计数设置为值,因此初始化count。