程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#文件操作

c#文件操作

編輯:C#入門知識

一 文件操作

 
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace 讀取整理  
{  
    class Program  
    {  
        static string desiteFile = "G:\\任務\\整理1\\";//分類存取的文件   
       // static string desiteFile = "";   
        static string path2 = "G:\\任務\\整理1\\result.txt";//結果文件   
        static string path_config = "G:\\任務\\整理\\audioConfig.txt";//映射文件   
          
        static System.IO.StreamWriter sw = new System.IO.StreamWriter(path2, false);             
  
        static int count = 1;  
        static int countfile = 0;  
  
        public class Map  
        {  
            public  int num ;  
            public  string[] name;// new string[10];   
            public Map()  
            {  
                num = 0;  
                name = new string[10];  
            }  
            
        };  
        static Map[] map = new Map[254];  
        //讀入映射文件,為聲音文件做對應 做准備   
        public static void readData()  
        {  
            for (int i = 0; i < 254; i++)  
                map[i] = new Map();  
  
            System.IO.FileStream fs = new System.IO.FileStream(path_config, System.IO.FileMode.Open);  
            System.IO.StreamReader m_streamReader = new System.IO.StreamReader(fs);  
            m_streamReader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin);   
            //string arry = "";    
            string strLine = m_streamReader.ReadLine();  
            int tmp1 = 1;  
            int tmp2 = 0;  
            do {   
                string[] split = strLine.Split('=');  
                string a = split[0];  
                tmp1 = System.Int32.Parse(a);  
                  
                if (tmp1 == tmp2)  
                {  
                   map[tmp1].num ++;  
                }  
                map[tmp1].name[map[tmp1].num] = split[1];  
                tmp2 = tmp1;  
                  
               strLine = m_streamReader.ReadLine();   
            } while (strLine != null && strLine != "");  
            m_streamReader.Close();   
            m_streamReader.Dispose();   
            fs.Close();   
            fs.Dispose();   
        }  
        //遞歸 有問題,出現重復復制,重復訪問   
        public static void read(string path)  
        {  
              
            //目錄下的文件夾集合   
            string[] diArr = System.IO.Directory.GetDirectories(path, "*", System.IO.SearchOption.AllDirectories);  
            //目錄下的文件   
            string[] rootfileArr = System.IO.Directory.GetFiles(path);  
  
            //文件夾遞歸             
            for (int i = 0; i < diArr.Length; i++)  
            {  
                //增加父節點                  
                string fileName = System.IO.Path.GetFileNameWithoutExtension(diArr[i]);  
                Console.WriteLine(fileName);  
                //node.Nodes.Add(fileName);                  
                read(diArr[i]);  
            }  
            //文件直接添加              
            foreach (string var in rootfileArr)  
            {  
                string str ="";  
                  
                //標注   
                string extension = System.IO.Path.GetExtension(var);//擴展名 “.aspx”   
                if(extension == ".wav")  
                {  
               //     Console.WriteLine(var);    
                    if (count % 10000 == 0 || count == 1)  
                    {  
                        desiteFile = "G:\\任務\\整理1\\";  
                        desiteFile += countfile.ToString()+"\\";  
                        countfile++;  
                    }  
                     
                    string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(var);// 沒有擴展名的文件名 “Default”   
                    int now = System.Int32.Parse(fileNameWithoutExtension);//獲取標號   
                    for (int i = 0; i <= map[now].num;i++ )  
                    {  
                        string strr = count.ToString() + "="+ map[now].name[i];  
                        sw.WriteLine(strr);  
                    }  
                      
                    str = desiteFile + count.ToString() + extension;  
                    System.IO.File.Copy(var, str,true);  
                    count++;  
                //    Console.WriteLine(count);   
                     
                }  
                    
            }  
        }  
        //非遞歸,直接獲得所有文件名   
        public static void read_new(string path)  
        {  
  
            //目錄下的文件夾集合   
            string[] diArr = System.IO.Directory.GetDirectories(path, "*", System.IO.SearchOption.AllDirectories);  
            //目錄下的文件   
             
  
            //文件夾遞歸             
            for (int i = 0; i < diArr.Length; i++)  
            {  
                //增加父節點                  
                string fileName = System.IO.Path.GetFileNameWithoutExtension(diArr[i]);  
                Console.WriteLine(fileName);  
                //node.Nodes.Add(fileName);                  
               // read(diArr[i]);   
                string[] rootfileArr = System.IO.Directory.GetFiles(diArr[i]);  
                //文件直接添加              
                foreach (string var in rootfileArr)  
                {  
                    string str = "";  
  
                    //標注   
                    string extension = System.IO.Path.GetExtension(var);//擴展名 “.aspx”   
                    if (extension == ".wav")  
                    {  
                        //     Console.WriteLine(var);    
                        if (count % 10000 == 0 || count == 1)  
                        {  
                            desiteFile = "G:\\任務\\整理1\\";  
                            desiteFile += countfile.ToString() + "\\";  
                            countfile++;  
                        }  
  
                        string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(var);// 沒有擴展名的文件名 “Default”   
                        int now = System.Int32.Parse(fileNameWithoutExtension);//獲取標號   
                          
                        str = desiteFile +"bjx"+ count.ToString("00000000") + extension;  
                        for (int k = 0; k <= map[now].num; k++)  
                        {  
                            string strr = "bjx" + count.ToString("00000000") + extension + "=" + map[now].name[k];  
                            sw.WriteLine(strr);  
                        }  
  
                        System.IO.File.Copy(var, str, true);  
                        count++;  
                        //    Console.WriteLine(count);   
  
                    }  
  
                }  
            }  
             
        }  
  
        static void Main(string[] args)  
        {  
            string path = "G:\\任務\\重命名加標注\\";//讀取的目錄文件   
            readData();  
            read_new(path);  
            sw.Close();//   
        }  
    }  
}  

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

namespace 讀取整理
{
    class Program
    {
        static string desiteFile = "G:\\任務\\整理1\\";//分類存取的文件
       // static string desiteFile = "";
        static string path2 = "G:\\任務\\整理1\\result.txt";//結果文件
        static string path_config = "G:\\任務\\整理\\audioConfig.txt";//映射文件
        
        static System.IO.StreamWriter sw = new System.IO.StreamWriter(path2, false);           

        static int count = 1;
        static int countfile = 0;

        public class Map
        {
            public  int num ;
            public  string[] name;// new string[10];
            public Map()
            {
                num = 0;
                name = new string[10];
            }
          
        };
        static Map[] map = new Map[254];
        //讀入映射文件,為聲音文件做對應 做准備
        public static void readData()
        {
            for (int i = 0; i < 254; i++)
                map[i] = new Map();

            System.IO.FileStream fs = new System.IO.FileStream(path_config, System.IO.FileMode.Open);
            System.IO.StreamReader m_streamReader = new System.IO.StreamReader(fs);
            m_streamReader.BaseStream.Seek(0, System.IO.SeekOrigin.Begin); 
            //string arry = ""; 
            string strLine = m_streamReader.ReadLine();
            int tmp1 = 1;
            int tmp2 = 0;
            do { 
                string[] split = strLine.Split('=');
                string a = split[0];
                tmp1 = System.Int32.Parse(a);
                
                if (tmp1 == tmp2)
                {
                   map[tmp1].num ++;
                }
                map[tmp1].name[map[tmp1].num] = split[1];
                tmp2 = tmp1;
                
               strLine = m_streamReader.ReadLine(); 
            } while (strLine != null && strLine != "");
            m_streamReader.Close(); 
            m_streamReader.Dispose(); 
            fs.Close(); 
            fs.Dispose(); 
        }
        //遞歸 有問題,出現重復復制,重復訪問
        public static void read(string path)
        {
            
            //目錄下的文件夾集合
            string[] diArr = System.IO.Directory.GetDirectories(path, "*", System.IO.SearchOption.AllDirectories);
            //目錄下的文件
            string[] rootfileArr = System.IO.Directory.GetFiles(path);

            //文件夾遞歸          
            for (int i = 0; i < diArr.Length; i++)
            {
                //增加父節點               
                string fileName = System.IO.Path.GetFileNameWithoutExtension(diArr[i]);
                Console.WriteLine(fileName);
                //node.Nodes.Add(fileName);               
                read(diArr[i]);
            }
            //文件直接添加           
            foreach (string var in rootfileArr)
            {
                string str ="";
                
                //標注
                string extension = System.IO.Path.GetExtension(var);//擴展名 “.aspx”
                if(extension == ".wav")
                {
               //     Console.WriteLine(var); 
                    if (count % 10000 == 0 || count == 1)
                    {
                        desiteFile = "G:\\任務\\整理1\\";
                        desiteFile += countfile.ToString()+"\\";
                        countfile++;
                    }
                   
                    string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(var);// 沒有擴展名的文件名 “Default”
                    int now = System.Int32.Parse(fileNameWithoutExtension);//獲取標號
                    for (int i = 0; i <= map[now].num;i++ )
                    {
                        string strr = count.ToString() + "="+ map[now].name[i];
                        sw.WriteLine(strr);
                    }
                    
                    str = desiteFile + count.ToString() + extension;
                    System.IO.File.Copy(var, str,true);
                    count++;
                //    Console.WriteLine(count);
                   
                }
                  
            }
        }
        //非遞歸,直接獲得所有文件名
        public static void read_new(string path)
        {

            //目錄下的文件夾集合
            string[] diArr = System.IO.Directory.GetDirectories(path, "*", System.IO.SearchOption.AllDirectories);
            //目錄下的文件
           

            //文件夾遞歸          
            for (int i = 0; i < diArr.Length; i++)
            {
                //增加父節點               
                string fileName = System.IO.Path.GetFileNameWithoutExtension(diArr[i]);
                Console.WriteLine(fileName);
                //node.Nodes.Add(fileName);               
               // read(diArr[i]);
                string[] rootfileArr = System.IO.Directory.GetFiles(diArr[i]);
                //文件直接添加           
                foreach (string var in rootfileArr)
                {
                    string str = "";

                    //標注
                    string extension = System.IO.Path.GetExtension(var);//擴展名 “.aspx”
                    if (extension == ".wav")
                    {
                        //     Console.WriteLine(var); 
                        if (count % 10000 == 0 || count == 1)
                        {
                            desiteFile = "G:\\任務\\整理1\\";
                            desiteFile += countfile.ToString() + "\\";
                            countfile++;
                        }

                        string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(var);// 沒有擴展名的文件名 “Default”
                        int now = System.Int32.Parse(fileNameWithoutExtension);//獲取標號
                        
                        str = desiteFile +"bjx"+ count.ToString("00000000") + extension;
                        for (int k = 0; k <= map[now].num; k++)
                        {
                            string strr = "bjx" + count.ToString("00000000") + extension + "=" + map[now].name[k];
                            sw.WriteLine(strr);
                        }

                        System.IO.File.Copy(var, str, true);
                        count++;
                        //    Console.WriteLine(count);

                    }

                }
            }
           
        }

        static void Main(string[] args)
        {
            string path = "G:\\任務\\重命名加標注\\";//讀取的目錄文件
            readData();
            read_new(path);
            sw.Close();//
        }
    }
}

二 二進制文件操作
 





 using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
  
namespace read  
{  
    class Program  
    {  
        static void read_correct(string file1)  
        {  
            /* 
             * 函數: 
             * 功能:校正文件數據值 
             * 時間:2013、8、8 
             * */  
            //讀取文件流   
            System.IO.FileStream fs1 = new System.IO.FileStream(file1, System.IO.FileMode.Open);  
            System.IO.BinaryReader m_streamReader = new System.IO.BinaryReader(fs1);  
              
            Byte[] head = new Byte[44];  
            int count = m_streamReader.Read(head,0,44);//讀取頭部   
           
  
            Int16[] data = new Int16[1000000];  
            Int16 temp;  
            int countnum =0;  
            int sum=0;  
            fs1.Position = 44;  
           //循環讀取並求和   
            while (fs1.Length > fs1.Position)  
            {  
                temp = m_streamReader.ReadInt16();  
                sum+=temp;  
                data[countnum] = temp;  
                countnum++;  
            }  
            //關閉讀取文件   
            m_streamReader.Close();  
            m_streamReader.Dispose();  
            fs1.Close();  
  
            //打開寫入文件   
            System.IO.FileStream fs2 = new System.IO.FileStream(file1, System.IO.FileMode.Open);  
            System.IO.BinaryWriter sw = new System.IO.BinaryWriter(fs2);  
            sw.Write(head);//寫入頭部   
            fs2.Position = 44;  
  
            int mean = sum / countnum;  
            //數據校正,每個值減去均值   
            for(int i=0; i < countnum;i++)  
            {   
               data[i] -= (Int16)mean;  
               sw.Write(data[i]);  
            }  
  
            //關閉文件及流   
            sw.Close();  
            fs2.Dispose();   
  
  
        }  
        static int count  = 0;  
        /* 
         * 函數: 
         * 功能:循環讀取各個文件夾,遍歷wav文件 
         * 時間:2013、8、8 
         * */  
        public static void read_new(string path1)  
        {  
  
            //目錄下的文件夾集合   
            string[] diArr = System.IO.Directory.GetDirectories(path1, "*", System.IO.SearchOption.AllDirectories);  
            //目錄下的文件   
  
            string desiteFile = "G:\\任務\\整理2\\";  
            //文件夾遞歸             
            for (int i = 0; i < diArr.Length; i++)  
            {  
                //增加父節點                  
                string fileName = System.IO.Path.GetFileNameWithoutExtension(diArr[i]);  
                Console.WriteLine(fileName);  
                  
                string[] rootfileArr = System.IO.Directory.GetFiles(diArr[i]);  
                //文件直接添加              
                foreach (string var in rootfileArr)  
                {  
                      
                    string extension = System.IO.Path.GetExtension(var);//擴展名 “.aspx”   
                    if (extension == ".wav")  
                    {  
                        read_correct(var);  
                    }  
  
                }  
            }  
  
        }  
        static void Main(string[] args)  
        {  
            string path1 = "G:\\任務\\整理1";  
            read_new(path1);  
        }  
    }  
}  

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

namespace read
{
    class Program
    {
        static void read_correct(string file1)
        {
            /*
             * 函數:
             * 功能:校正文件數據值
             * 時間:2013、8、8
             * */
            //讀取文件流
            System.IO.FileStream fs1 = new System.IO.FileStream(file1, System.IO.FileMode.Open);
            System.IO.BinaryReader m_streamReader = new System.IO.BinaryReader(fs1);
            
            Byte[] head = new Byte[44];
            int count = m_streamReader.Read(head,0,44);//讀取頭部
         

            Int16[] data = new Int16[1000000];
            Int16 temp;
            int countnum =0;
            int sum=0;
            fs1.Position = 44;
           //循環讀取並求和
            while (fs1.Length > fs1.Position)
            {
                temp = m_streamReader.ReadInt16();
                sum+=temp;
                data[countnum] = temp;
                countnum++;
            }
            //關閉讀取文件
            m_streamReader.Close();
            m_streamReader.Dispose();
            fs1.Close();

            //打開寫入文件
            System.IO.FileStream fs2 = new System.IO.FileStream(file1, System.IO.FileMode.Open);
            System.IO.BinaryWriter sw = new System.IO.BinaryWriter(fs2);
            sw.Write(head);//寫入頭部
            fs2.Position = 44;

            int mean = sum / countnum;
            //數據校正,每個值減去均值
            for(int i=0; i < countnum;i++)
            { 
               data[i] -= (Int16)mean;
               sw.Write(data[i]);
            }

            //關閉文件及流
            sw.Close();
            fs2.Dispose(); 


        }
        static int count  = 0;
        /*
         * 函數:
         * 功能:循環讀取各個文件夾,遍歷wav文件
         * 時間:2013、8、8
         * */
        public static void read_new(string path1)
        {

            //目錄下的文件夾集合
            string[] diArr = System.IO.Directory.GetDirectories(path1, "*", System.IO.SearchOption.AllDirectories);
            //目錄下的文件

            string desiteFile = "G:\\任務\\整理2\\";
            //文件夾遞歸          
            for (int i = 0; i < diArr.Length; i++)
            {
                //增加父節點               
                string fileName = System.IO.Path.GetFileNameWithoutExtension(diArr[i]);
                Console.WriteLine(fileName);
                
                string[] rootfileArr = System.IO.Directory.GetFiles(diArr[i]);
                //文件直接添加           
                foreach (string var in rootfileArr)
                {
                    
                    string extension = System.IO.Path.GetExtension(var);//擴展名 “.aspx”
                    if (extension == ".wav")
                    {
                        read_correct(var);
                    }

                }
            }

        }
        static void Main(string[] args)
        {
            string path1 = "G:\\任務\\整理1";
            read_new(path1);
        }
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved