想从本地路径A中读取一些文件,到本地路径B中,请问大家如何实现呀,听说好像是什么流,但是不会用,有简单易懂的小例子贴上给偶学习下吧~!谢谢啦~~~!!!

解决方案 »

  1.   

    System.IO.File类和System.IO.FileInfo类主要提供有关文件的各种操作,在使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。 
      (1) 文件打开方法:File.Open ()
      该方法的声明如下: 
    public static FileStream Open(string path,FileMode mode) 
      下面的代码打开存放在c:\tempuploads目录下名称为newFile.txt文件,并在该文件中写入hello。 
    private void OpenFile()

     FileStream.TextFile=File.Open(@"c:\tempuploads\newFile.txt",FileMode.Append);
     byte [] Info = {(byte)'h',(byte)'e',(byte)'l',(byte)'l',(byte)'o'};
     TextFile.Write(Info,0,Info.Length);
     TextFile.Close();

      (2) 文件创建方法:File.Create() 
      该方法的声明如下: 
    public static FileStream Create(string path;) 
      下面的代码演示如何在c:\tempuploads下创建名为newFile.txt的文件。 
      由于File.Create方法默认向所有用户授予对新文件的完全读/写访问权限,所以文件是用读/写访问权限打开的,必须关闭后才能由其他应用程序打开。为此,所以需要使用FileStream类的Close方法将所创建的文件关闭。 
    private void MakeFile()
    {  
        FileStream NewText=File.Create(@"c:\tempuploads\newFile.txt"); 
     NewText.Close(); 
    } 
            (3) 文件删除方法:File.Delete() 
      该方法声明如下: 
    public static void Delete(string path); 
      下面的代码演示如何删除c:\tempuploads目录下的newFile.txt文件。 
    private void DeleteFile()
    {
     File.Delete(@"c:\tempuploads\newFile.txt");

      (4) 文件复制方法:File.Copy   该方法声明如下: public static void Copy(string sourceFileName,string destFileName,bool overwrite); 
      下面的代码将c:\tempuploads\newFile.txt复制到c:\tempuploads\BackUp.txt。
      由于Cope方法的OverWrite参数设为true,所以如果BackUp.txt文件已存在的话,将会被复制过去的文件所覆盖。 
    private void CopyFile()
    {
     File.Copy(@"c:\tempuploads\newFile.txt",@"c:\tempuploads\BackUp.txt",true);

      (5) 文件移动方法:File.Move 
      该方法声明如下: 
    public static void Move(string sourceFileName,string destFileName); 
      下面的代码可以将c:\tempuploads下的BackUp.txt文件移动到c盘根目录下。
      注意: 
      只能在同一个逻辑盘下进行文件转移。如果试图将c盘下的文件转移到d盘,将发生错误。 
    private void MoveFile()
    {
     File.Move(@"c:\tempuploads\BackUp.txt",@"c:\BackUp.txt");

     (6) 设置文件属性方法:File.SetAttributes
      该方法声明如下: 
    public static void SetAttributes(string path,FileAttributes fileAttributes); 
      下面的代码可以设置文件c:\tempuploads\newFile.txt的属性为只读、隐藏。 
    private void SetFile()
    {
     File.SetAttributes(@"c:\tempuploads\newFile.txt",
     FileAttributes.ReadOnly|FileAttributes.Hidden);

      文件除了常用的只读和隐藏属性外,还有Archive(文件存档状态),System(系统文件),Temporary(临时文件)等。关于文件属性的详细情况请参看MSDN中FileAttributes的描述。 
      (7) 判断文件是否存在的方法:File.Exist 
      该方法声明如下: 
    public static bool Exists(string path); 
      下面的代码判断是否存在c:\tempuploads\newFile.txt文件。若存在,先复制该文件,然后其删除,最后将复制的文件移动;若不存在,则先创建该文件,然后打开该文件并进行写入操作,最后将文件属性设为只读、隐藏。 
    if(File.Exists(@"c:\tempuploads\newFile.txt")) //判断文件是否存在
    {
     CopyFile(); //复制文件
     DeleteFile(); //删除文件
     MoveFile(); //移动文件
    }
    else
    {
     MakeFile(); //生成文件
     OpenFile(); //打开文件
     SetFile(); //设置文件属性

      此外,File类对于Text文本提供了更多的支持。 
      · AppendText:将文本追加到现有文件 
      · CreateText:为写入文本创建或打开新文件 
      · OpenText:打开现有文本文件以进行读取 
      但上述方法主要对UTF-8的编码文本进行操作,从而显得不够灵活。在这里推荐读者使用下面的代码对txt文件进行操作。 
      · 对txt文件进行“读”操作,示例代码如下: 
    StreamReader TxtReader = new StreamReader(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);
    string FileContent;
    FileContent = TxtReader.ReadEnd();
    TxtReader.Close(); 
      · 对txt文件进行“写”操作,示例代码如下: 
    StreamWriter = new StreamWrite(@"c:\tempuploads\newFile.txt",System.Text.Encoding.Default);
    string FileContent;
    TxtWriter.Write(FileContent);
    TxtWriter.Close(); 
      System.IO.Directory类和System.DirectoryInfo类 
      主要提供关于目录的各种操作,使用时需要引用System.IO命名空间。下面通过程序实例来介绍其主要属性和方法。 
      (1) 目录创建方法:Directory.CreateDirectory 
      该方法声明如下: 
    public static DirectoryInfo CreateDirectory(string path); 
      下面的代码演示在c:\tempuploads文件夹下创建名为NewDirectory的目录。 
    private void MakeDirectory()
    {
     Directory.CreateDirectory(@"c:\tempuploads\NewDirectoty"); 

      (2) 目录属性设置方法:DirectoryInfo.Atttributes 
      下面的代码设置c:\tempuploads\NewDirectory目录为只读、隐藏。与文件属性相同,目录属性也是使用FileAttributes来进行设置的。 
    private void SetDirectory()
    {
     DirectoryInfo NewDirInfo = new DirectoryInfo(@"c:\tempuploads\NewDirectoty");
     NewDirInfo.Atttributes = FileAttributes.ReadOnly|FileAttributes.Hidden;

      (3) 目录删除方法:Directory.Delete 
      该方法声明如下: 
    public static void Delete(string path,bool recursive); 
      下面的代码可以将c:\tempuploads\BackUp目录删除。Delete方法的第二个参数为bool类型,它可以决定是否删除非空目录。如果该参数值为true,将删除整个目录,即使该目录下有文件或子目录;若为false,则仅当目录为空时才可删除。 
    private void DeleteDirectory()
    {
     Directory.Delete(@"c:\tempuploads\BackUp",true);

      (4) 目录移动方法:Directory.Move 
      该方法声明如下: 
    public static void Move(string sourceDirName,string destDirName); 
      下面的代码将目录c:\tempuploads\NewDirectory移动到c:\tempuploads\BackUp。 
    private void MoveDirectory()
    {
     File.Move(@"c:\tempuploads\NewDirectory",@"c:\tempuploads\BackUp");

      (5) 获取当前目录下的所有子目录方法:Directory.GetDirectories 
      该方法声明如下: 
    public static string[] GetDirectories(string path;); 
      下面的代码读出c:\tempuploads\目录下的所有子目录,并将其存储到字符串数组中。 
    private void GetDirectory()
    {
     string [] Directorys;
     Directorys = Directory. GetDirectories (@"c:\tempuploads");

      (6) 获取当前目录下的所有文件方法:Directory.GetFiles 
      该方法声明如下: 
    public static string[] GetFiles(string path;); 
      下面的代码读出c:\tempuploads\目录下的所有文件,并将其存储到字符串数组中。 
    private void GetFile()
    {
     string [] Files;
     Files = Directory. GetFiles (@"c:\tempuploads",);

      (7) 判断目录是否存在方法:Directory.Exist 
      该方法声明如下: 
    public static bool Exists(
     string path;
    ); 
      下面的代码判断是否存在c:\tempuploads\NewDirectory目录。若存在,先获取该目录下的子目录和文件,然后其移动,最后将移动后的目录删除。若不存在,则先创建该目录,然后将目录属性设为只读、隐藏
    if(File.Exists(@"c:\tempuploads\NewDirectory")) //判断目录是否存在
    {
     GetDirectory(); //获取子目录
     GetFile(); //获取文件
     MoveDirectory(); //移动目录
     DeleteDirectory(); //删除目录
    }
    else
    {
     MakeDirectory(); //生成目录
     SetDirectory(); //设置目录属性

      

  2.   

    StreamWriter sw = null;   
    sw = new StreamWriter(saveFileName, false, Encoding.Unicode);
    sw.Close();  
    这是写文件,读文件,你查查就知道
      

  3.   

    我给你来个读文件的,写文件的我这没例子:        public Form1()
            {
                try
                {
                    GetFileName(FilePath);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
            /// <summary>
            /// 循环获取文件名
            /// </summary>
            /// <param name="FilePath"></param>
            private void GetFileName(string FilePath)
            {
                //指定文件位置
                DirectoryInfo di = new DirectoryInfo(FilePath);
                //将文件放入集合
                FileInfo[] fi = di.GetFiles();
                //循环读书文件名并传入
                foreach (FileInfo fiTemp in fi)
                {
                    fiTemp.Name.ToString();
                    if (fiTemp.Extension == ".dat")
                    {
                        InsertIMEI(fiTemp.FullName.ToString());
                    }
                }
            }
            /// <summary>
            /// 读取DAT文件
            /// </summary>
            /// <param name="a"></param>
            public DataTable ReadDAT(String FilePath)
            {
                StreamReader sw = new StreamReader(FilePath);
                String line = sw.ReadLine();
                DataTable dt = new DataTable();
                DataRow DtRow = default(DataRow);
                dt.Columns.Add("IMEI", System.Type.GetType("System.String"));
                dt.Columns.Add("ProduceDate", System.Type.GetType("System.String"));
                dt.Columns.Add("SellDate", System.Type.GetType("System.String"));
                while (!string.IsNullOrEmpty(line))
                {
                    int sum = 1;
                    DtRow = dt.NewRow();
                    string[] c;
                    c = line.Split(Char.Parse(" "));
                    for (int i = 0; i < c.Length; i++)
                    {
                        if (c[i].ToString() != "")
                        {
                            if (sum == 2)
                            {
                                DtRow["IMEI"] = c[i].ToString();
                            }
                            if (sum == 3)
                            {
                                DtRow["ProduceDate"] = c[i].ToString().Substring(0, 10);
                                break;
                            }
                            sum++;
                        }
                    }
                    if (c[c.Length - 1].ToString() != "")
                    {
                        DtRow["SellDate"] = c[c.Length - 1].ToString();
                    }
                    dt.Rows.Add(DtRow);
                    line = sw.ReadLine();
                }
                sw.Close();
                return dt;
            }
            /// <summary>
            /// 读取DAT文件数据插入SQL
            /// </summary>
            /// <param name="FilePath"></param>
            private void InsertIMEI(string FilePath)
            {
                SqlConnection con = new SqlConnection(SqlConn);
                try
                {
                    SqlCommand cmd = new SqlCommand();
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Connection = con;
                    cmd.CommandText = "Add_CSMS_IMEI_Time";
                    con.Open();
                    DataTable dt = new DataTable();
                    dt = ReadDAT(FilePath);
                    int n;
                    if (dt.Rows.Count != 0)
                    {
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            //判断是否为15位,判断是否为数字
                            if (dt.Rows[i]["IMEI"].ToString().Length >= 15 || int.TryParse(dt.Rows[i]["IMEI"].ToString(), out n))
                            {                            try
                                {
                                    String GuaranteeDate = "";
                                    if (dt.Rows[i]["ProduceDate"].ToString() != "")
                                    {
                                        GuaranteeDate = DateTime.Parse(dt.Rows[i]["ProduceDate"].ToString()).AddMonths(15).ToString("yyyy-MM-dd");
                                    }
                                    cmd.Parameters.Clear();
                                    cmd.Parameters.AddWithValue("@IMEI", dt.Rows[i]["IMEI"].ToString());
                                    cmd.Parameters.AddWithValue("@ProduceDate", dt.Rows[i]["ProduceDate"].ToString());
                                    cmd.Parameters.AddWithValue("@SellDate", dt.Rows[i]["SellDate"].ToString());
                                    cmd.Parameters.AddWithValue("@Str", GuaranteeDate);
                                    cmd.ExecuteNonQuery();
                                }
                                catch (Exception ex)
                                {
                                    throw ex;
                                }
                            }
                        }
                    }            }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    FileInfo FInfo = new FileInfo(FilePath);
                    FInfo.Delete();
                    con.Close();
                }
            }
      

  4.   

    FileReader,FileWriter,StreamReader,StreamWriter
      

  5.   

    using System;
    using System.Data;
    using System.IO;
    using System.Text;public void WriteFile(string content, string fileSavePath)
    {
               if (System.IO.File.Exists(fileSavePath))
            {
                System.IO.File.Delete(fileSavePath);
            }
            using (System.IO.FileStream fs = System.IO.File.Create(fileSavePath)) 
            {
                byte[] info = new System.Text.Encoding.GetEncoding("gb2312").GetBytes(content);   //防止乱码
                fs.Write(info, 0, info.Length);
            }
    }
    public string ReadFile(string fileOpenPath)
    {
               if (!System.IO.File.Exists(fileOpenPath))
            {
                return null;
            }
            using (System.IO.StreamReader sr = System.IO.File.OpenText(fileOpenPath)) 
            {
                return  sr.ReadToEnd().ToString();
            }
    }