我试图获取远程目录中的文件列表,并检查文件是否有名称" 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"。因此无法复制到本地。
答案 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);
}