获取文件列表并复制到本地目录的有效方法?

时间:2012-03-04 05:47:56

标签: c#

我试图获取远程目录中的文件列表,并检查文件是否有名称" test&#34 ;;然后复制到我的本地目录。

这里做了一件简单的事,但有人可以让我知道处理这种情况的最佳方法。

class Program
{
    static void Main(string[] args)
    {
        var getfiles = new fileshare.Program();
        string[] filteredfiles =getfiles.GetFileList();

        bool b;
        foreach (string file in filteredfiles)
        { 
            if(b=file.Contains("test"))
            {
                getfiles.copytolocal(file);
            }

        }

    }

    private string[] GetFileList()
    {
        string[] filepaths = Directory.GetFiles(@"\\testserver\dev");
        return filepaths;
    }
    private void copytolocal(string filename)
    {
        File.Copy(filename, @"C:\" + filename);
    }
}

即使我刚刚复制文件时,文件名也包含文件名中的整个目录,因此文件名看起来像" \\ testserver \ dev \ test.txt"。因此无法复制到本地。

2 个答案:

答案 0 :(得分:1)

您正在寻找Path.GetFileName()(返回一个字符串)。

答案 1 :(得分:1)

您可以使用DirectoryInfo过滤到包含字符串“test”的任何文件:

private FileInfo[] GetFileList(string pattern)
{ 
    var di = new DirectoryInfo(@"\\testserver\dev");
    return di.GetFiles(pattern);
}

然后:

 foreach (var file in GetFileList("*test*"))
 { 
     getfiles.copytolocal(file.FullName);
 }