c#中读写文件查找特定名称的文件

来源:互联网 发布:python 写shell脚本 编辑:程序博客网 时间:2024/06/06 02:13


string str = "d:\\";

string[] filedir = Directory.GetFiles(str, "*.csv", SearchOption.AllDirectories);
//查找D盘下所有(包括子目录)的CSV文件
string[] filedir = Directory.GetFiles(str, "*abcd*.*", SearchOption.AllDirectories);
//查找D盘下所有文件名包含abcd的文件(包括子目录)






以下代码可以实现将远程主机上的共享文件复制到本地。

using System;

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;

namespace FileCopyFromRemoteComputer
{
    class Program
    {
        static void Main(string[] args)
        {
            if (Ping("10.71.1.67"))
                {
                    string remote = @"\\10.71.1.67\gongxiang222";

                    string aimPath = @"D:\copytest";

                    if (aimPath[aimPath.Length - 1] != Path.DirectorySeparatorChar)    //给目标路径添加\\

                        aimPath += Path.DirectorySeparatorChar;

                    if (!Directory.Exists(aimPath))
   //如果目标文件夹不存在,则创建
                        Directory.CreateDirectory(aimPath);

                    string[] fileList = Directory.GetFileSystemEntries(remote);
   //获取远程路径下的所有文件列表
                    DateTime dtStart = DateTime.Now;
   //开始复制的时间
                  
                    foreach (string file in fileList)
                    {
                            File.Copy(file, aimPath + Path.GetFileName(file), true);
  //复制文件到目标路径
                    }
                    DateTime dtEnd = DateTime.Now;   //结束时间
                   int time =  dtEnd.Subtract(dtStart).Seconds;
  //耗时统计
                   Console.WriteLine(time);
                   Console.ReadKey();
                }
            
        }
        public static bool Ping(string remoteHost)   //Ping远程主机
        {
            bool Flag = false;
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
                string dosLine = @"ping -n 1 " + remoteHost;
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (proc.HasExited == false)
                {
                    proc.WaitForExit(500);
                }
                string pingResult = proc.StandardOutput.ReadToEnd();
                if (pingResult.IndexOf("(0% loss)") != -1)
                {
                    Flag = true;
                }
                proc.StandardOutput.Close();
            }
            catch (Exception ex)
            {
            }
            finally
            {
                try
                {
                    proc.Close();
                    proc.Dispose();
                }
                catch
                {
                }
            }
            return Flag;
        }
    }
}