2013-07-30 95 views
0

我需要一點幫助,我正在使用C#編寫一個小項目。獲取目錄計數

這裏是我的代碼:

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

只要我想要它做的是看看有多少文件是在我的「下載」文件夾中。

雖然我遇到了兩個問題。

  1. 第一個問題是這個詞System綠色標有下劃線且它說:「檢測不可達代碼」。

    起初我以爲這可能是由我缺少的命名空間造成的,我查看了我的代碼,看到我已經有了using System.IO;using System;。我認爲這兩個是我需要的目錄數量。

    所以我不知道爲什麼它的下劃線綠色。的xD

  2. 第二個問題是,當我把這些2行代碼到我的項目它打破了我的另一段代碼是這樣的:在藍色

    case "switch window": 
    SendKeys.Send("%{TAB " + count + "}"); 
    count += 1; 
    break; 
    

我得到「計數」下劃線說「使用未分配的本地變量」計數'「

我很困惑,爲什麼2行代碼獲取目錄長度打破了這一點。

+1

[更新你的問題與你的代碼的其餘部分,因爲它是很不清楚你必須確定你的問題。](http://stackoverflow.com/posts/17937393/edit)例如使用'case'你需要一個'switch',並且你沒有向我們展示你的'switch',我們也不知道你是否在一個函數或事件中或者在哪裏使用了上面的代碼。 – Prix

+1

你必須顯示整個代碼。您根據示例以外的代碼描述的所有問題。 – dmay

回答

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; 

第二個由第一個引起的是明確的 - 如果代碼永遠不可達,那麼它將永遠不會將計數設置爲一個值,因此計數被初始化。

+1

謝謝,第一個錯誤排序我相信你的代碼。我仍然有第二個錯誤,現在說「一個名爲'count'的局部變量不能在這個範圍內聲明,因爲它會給'count'賦予不同的含義,'count'已經在'child'範圍內用來表示別的東西。 「 – Tahmid

+0

@ user2632390 - 你正在聲明'count'兩次,我建議把它們中的一個重命名爲別的東西,或者如果它們打算是相同的變量,則在它們中的一個前面加上'int',這樣你就不會再聲明它了。 – Hogan

+1

那麼,如何在您爲目錄數量給出的第一段代碼中更改它?我仍然是一個新手。 :/ – Tahmid