2012-12-14 43 views
-5

我origanl DoWork的方法是:如何調用方法

private static void DoWork(string dirPath) 

這是我從我的主要方法使用名爲:

DoWork(@"C:\location"); 

但我已經改變了DoWork的方法如下。

private static void DoWork(string sourceDir, string fileType) 

我難倒如何從我的主要方法調用這個,我是新來的C#和已經看過在MSDN網站,但是網站的一些見解,但我似乎無法找到任何涉及到我的問題。任何指導將不勝感激。從我的DoWork方法

段:

private static void DoWork(string sourceDir, string fileType) 
    { 

     // Function: Get specified files (fileType) form sub-directory (sourceDir) 
     // Return: void 
      { 
    string[] dirEntries = Directory.GetDirectories(@"c:\fileDump"); 
    string fileName, filePath, fullFileName; 

    foreach (string subDir in dirEntries) 
{ 
    DirectoryInfo dir = new DirectoryInfo(subDir); 
    FileInfo[] imgFiles = dir.GetFiles("*.xml"); 

    foreach (FileInfo imgFile in imgFiles) 
{ 
    fileName = imgFile.Name; 
    filePath = imgFile.DirectoryName; 
    fullFileName = "filePath + 「\\」 + fileName"; 

Code From Here

+4

您的標題似乎與身體不匹配 - 問題是什麼?你問如何調用多個參數的方法? – Paolo

+0

如果您更改DoWork方法的簽名(兩個參數而不是一個),則在調用它時應該傳遞兩個參數。 DoWork方法的一些代碼在這裏會有所幫助。而且,是的,正如@Paolo所說。你的頭銜和你的問題有什麼關係? – Steve

+0

真的很抱歉,我今天早些時候會問另一個問題,但找到了另一個解決方案。所以你可以看到我從未改變過問題標題。我問你在問題領域看到什麼,請忽略標題。 – bikerben

回答

2

所以,我認爲,你要調用僅適用於某些類型的文件的方法。
那麼你的代碼應該是這樣的

private static void DoWork(string sourceDir, string fileType) 
{ 
     string[] fileEntries = Directory.GetFiles(sourceDir, fileType, 
          SearchOption.AllDirectories); 
     foreach (string fullFileName in fileEntries) 
     { 
      .... 
     } 
} 

,並從Main方法以這種方式

// Work on every JPG file in source location and subdirectory of the initial location 
DoWork(@"c:\location", "*.jpg"); 

Directory.GetFiles方法可以採取指定源位置,三個參數,文件模式叫它匹配文件和觸發遞歸搜索初始文件夾的所有子文件夾的枚舉。

+0

我已經從我的DoWork方法中彈出了所有代碼,以便您可以準確地查看我的目標。我明白你來自哪裏,但是我需要處理子目錄中的文件,所以使用重載的解決方案將不起作用,我嘗試過使用它,但它不符合我的要求。 – bikerben

+0

對不起,我把它全部回來,我剛剛測試過你的解決方案,它的作品完美。上次我嘗試了一些類似的東西時,我想不出我做錯了什麼。再次感謝你。 – bikerben