Follow me on GitHub Follow me on Twitter

与文件有关的基本API总结

都是最基础的东西,直接贴代码了。

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

namespace FileAPI
{
    class Program
    {
        static void Main(string[] args)
        {
            //与目录相关的操作
            DirectoryDemo();
           
            //与文件相关的操作
            FileDemo();

            //与Path类有关的操作
            PathDemo();

            //与Stream有关的操作
            StreamDemo();
        }

        private static void DirectoryDemo()
        {
            //建立,删除目录方I
            var directoryInfo = new DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestFiles"));
            directoryInfo.Create();
            directoryInfo.Delete();

            //建立,删除目录II
            var direcoty = Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TestFiles"));
            direcoty.Delete();

            //查找目录
            var rootDirectoryInfo = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
            var fileArray = rootDirectoryInfo.GetDirectories(@"*");  //此处是Wild Mask 匹配模式,经测试不是正则匹配模式
            foreach (var item in fileArray)
            {
                Console.WriteLine("Direcoty Name : {0}",item.Name);
            }

            //检测目录是否存在
            Console.WriteLine("FilesDirecoty Exist?  {0}", Directory.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files")));
            Console.WriteLine("VideoDirecoty Exist?  {0}", Directory.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Video")));
            
            //移动目录
            Directory.CreateDirectory(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Video"));
            var videoDirectoryInfo = new  DirectoryInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Video"));
            if (!Directory.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Video")))
                videoDirectoryInfo.MoveTo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Dest"));//并非拷贝,而是将该目录重命名后移动
        }

        private static void FileDemo()
        {
            //创建文件
            File.Create(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Text.txt")).Close();
            
            //删除文件
            if(File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Text.txt")))
            { 
                var textFileInfo = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Text.txt"));
                textFileInfo.Delete();
                if(!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Text.txt")))
                {
                    Console.WriteLine("Delete success");
                }
            }

            //移动与拷贝文件
            var textFile = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Text.txt"));
            textFile.Create().Close();
            if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "MediaText.txt")))
            {
                textFile.MoveTo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "MediaText.txt"));    
            }
            var mediaTextFile = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "MediaText.txt"));
            mediaTextFile.Create().Close();
            mediaTextFile.CopyTo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", Guid.NewGuid().ToString()));
        }
        private static void PathDemo()
        {
            var mediaTextFilePathString = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "MediaText.txt");

            //用于根据PATH的字符串提取有用信息
            Console.WriteLine(Path.GetDirectoryName(mediaTextFilePathString));
            Console.WriteLine(Path.GetExtension(mediaTextFilePathString));
            Console.WriteLine(Path.GetFileName(mediaTextFilePathString));
            Console.WriteLine(Path.GetFileNameWithoutExtension(mediaTextFilePathString));
            Console.WriteLine(Path.GetFullPath(mediaTextFilePathString));
            Console.WriteLine(Path.GetPathRoot(mediaTextFilePathString));
        }

        private static void StreamDemo()
        {
            File.Create(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Work.txt")).Close();

            //写文件
            try
            {
                using (FileStream fileStream = new FileStream(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
                    "Files", "Work.txt"), FileMode.OpenOrCreate, FileAccess.Write))
                {
                    var ouputString = "I am ready";
                    fileStream.Write(Encoding.UTF8.GetBytes(ouputString), 0, ouputString.Length);
                }
            }
            catch(DirectoryNotFoundException){}
            catch (FileNotFoundException) {}

            //读文件
            try
            {
                using (StreamReader fileStream = File.OpenText(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Work.txt")))
                {
                    var ouputString = fileStream.ReadToEnd();
                    Console.WriteLine(ouputString);
                }
            }
            catch(DirectoryNotFoundException){}
            catch (FileNotFoundException) {}
        }
    }
}

 

posted @ 2014-11-16 15:31  官文祥  阅读(211)  评论(0)    收藏  举报