2012-12-14 68 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