2010-12-03 43 views
1

我需要根據比較使用C#

1.No of files 
2.Size of files 
3 date 

比較兩個文件夾的內容的兩個文件夾的內容,我在這段代碼

private void SeekFiles(string Root) 
    { 
    string[] Files = System.IO.Directory.GetFiles(Root); 
    string[] Folders = System.IO.Directory.GetDirectories(Root); 
    FileInfo File; 
     for(int i=0; i< Folders.Length; i++) 
    { 
    File = new FileInfo(Files[i]); 
    FolderSize += File.Length; 
    } 

    for(int i=0; i< Folders.Length-1; i++) 
    { 
    SeekFiles(Folders[i]); 
    } 
    } 

任何建議,得到了一個錯誤索引出界的異常? ?

回答

3

看起來你正在使用一個錯誤的集合錯誤的索引:

for(int i=0; i< Folders.Length; i++) 
{ 
    File = new FileInfo(Files[i]); 
    FolderSize += File.Length; 
} 

應該是:

for(int i=0; i< **Files.Length**; i++) 
{ 
    File = new FileInfo(Files[i]); 
    FolderSize += File.Length; 
} 
+0

我使用`** Files.Length **`突出顯示錯誤發生的地方。只要刪除** s並使用`Files.Length`來代替。 – decyclone 2010-12-03 09:28:37

1
for(int i=0; i< Folders.Length; i++) 

{ 
File = new FileInfo(Files[i]); 
FolderSize += File.Length; 
} 

這應該是Files.Length

2

您正在使用的文件[我]但我< Folders.Length在第一次。