• C# I/O


    获取运行时的动态目录

    private static string GetDataDir_Data()
    {
          var parent = Directory.GetParent(Directory.GetCurrentDirectory()).Parent;
          string startDirectory = null;
          if (parent != null)
          {
               var directoryInfo = parent.Parent;
               if (directoryInfo != null)
               {
                    startDirectory = directoryInfo.FullName;
               }
           }
           else
           {
                startDirectory = parent.FullName;
           }
           return Path.Combine(startDirectory, "Data\");
    }

    //参考之Aspose.Words-for-.NET-master

    //其他

    string d2 = AppDomain.CurrentDomain.BaseDirectory;

    常用工具方法 

    文件扩展名

    string fileExtension = Path.GetExtension(fileName)//全路径,返回带点
    Directory.CreateDirectory(exportPath)

     

    I/O操作之文件,目录删除

    public void CleanTempPath(TCPRptParamInfo param)
    {
        string TempPath = ConfigHelper.ReadConfig("TempPath");
        string returnStr = TempPath + "\" + param.SubTempDirectory + "\";
    
        if (Directory.Exists(returnStr))
        {
            FileInfo[] fi = new DirectoryInfo(returnStr).GetFiles();
            int fileLenght =  fi.Length;
            for (int i = 0; i < fileLenght;  i++)
            {
                fi[i].Delete();
            }
            //Directory.Delete(returnStr); //删目录,非空目录不能直接删除
        }
    }
    if (Directory.Exists(returnStr))
    {
        Directory.Delete(returnStr,true);//直接删除非空目录
    }

     读文本方式之一

    string dataDir = AppDomain.CurrentDomain.BaseDirectory; //Get Current Directory
    
    StreamReader srPerson = File.OpenText(FaleName1);//文本文件完整路径
    StreamReader strData = File.OpenText(dataDir + "data.txt");
    while (!strData.EndOfStream)
    {
        string textLine = srPerson.ReadLine();
        //TODO
    }

     读文本方式之二

    using System.IO;
    
    string dataPath = GetMaterialPath(param, DocType.LeaderAttribute) + "data.txt";
    string configstr = System.IO.File.ReadAllText(dataPath, Encoding.Default); //核心方法:读文本方式之一
    Dictionary<string, string> allConfig = ConfigHelper.ParseConfigString(configstr);
    
    public static class ConfigHelper
    {
        public static string ReadConfig(string key)
        {
            return System.Configuration.ConfigurationManager.AppSettings[key];
        }
    
        public static Dictionary<string, string> ParseConfigString(string config)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>(StringComparer.InvariantCultureIgnoreCase);
            string[] array = config.Split(new char[]
            {
                ''//行结束标记
            });
            string[] array2 = array;
            for (int i = 0; i < array2.Length; i++)
            {
                string text = array2[i];
                string[] array3 = text.Split(new char[]
                {
                    ':'
                });
                if (array3.Length == 2)
                {
                    dictionary.Add(array3[0].Trim(), array3[1].Trim());
                }
                else
                {
                    dictionary.Add(text.Trim(), null);
                }
            }
            return dictionary;
        }
    }

     写文件(追加)参考

    FileInfo fi = new FileInfo(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"SBILog.txt");//创建一个文件信息
    if (fi.Exists && fi.Length > 1024 * 1024)
    {//先判断是否存在改名称的文件,并且判断文件的大小
        fi.Delete();
    }
    FileStream fs = new FileStream(System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"SBILog.txt", FileMode.OpenOrCreate, FileAccess.Write);//创建一个文件流
    StreamWriter m_streamWriter = new StreamWriter(fs);//创建一个文件输入流
    m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);//字符追加的位置
    m_streamWriter.WriteLine("Msg:" + DateTime.Now.ToString() + " -- " + System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "
    ");//向文件中写入字符串
    m_streamWriter.Flush();//清除此流的缓冲区,使得所有缓冲的数据都写入到文件中。
    m_streamWriter.Close();//关闭输入流
    fs.Close();//关闭文件流
    public string Path = AppDomain.CurrentDomain.BaseDirectory;
    public string DataSource = "\Txt\yun_data.txt";
    public string ToMatch = "\Txt\lost.txt";
    
    public List<string> DataSourceList = new List<string>();
    public void Run()
    {
        FileStream fs = new FileStream(Path + @"\Txt\SBILog.txt", FileMode.OpenOrCreate, FileAccess.Write);//创建一个文件流
        StreamWriter m_streamWriter = new StreamWriter(fs);//创建一个文件输入流
    
        StreamReader strData = File.OpenText(Path + DataSource);
        while (!strData.EndOfStream)
        {
            string text = strData.ReadLine().Trim();
            DataSourceList.Add(text);
        }
        strData.Close();
    
        //待查找到文件名
        strData = File.OpenText(Path + ToMatch);
        while (!strData.EndOfStream)
        {
            string text = strData.ReadLine().Trim();
            Match TitleMatch = Regex.Match(text, @"[([^[]]*)]"); //抓取由方括号界定的字符
            string titleKey = TitleMatch.Groups[1].Value;
            foreach (string item in DataSourceList) {
                if (item.IndexOf(titleKey) > 0)
                {
                    string log = text + "=>" + item;
                    m_streamWriter.BaseStream.Seek(0, SeekOrigin.End);//字符追加的位置
                    m_streamWriter.WriteLine(log + "
    ");//向文件中写入字符串
                }
            }
        }
        strData.Close();
        //
        m_streamWriter.Flush();//清除此流的缓冲区,使得所有缓冲的数据都写入到文件中。
        m_streamWriter.Close();//关闭输入流
        fs.Close();//关闭文件流
    }
  • 相关阅读:
    C++11 中的 Defaulted 和 Deleted 函数
    php运行出现Call to undefined function curl_init()的解决方法
    Windows 8 IIS中配置PHP运行环境的方法
    中国天气预报数据API收集
    IIS 6中mimemap属性的默认设置
    使用APPCAN开发移动应用APP心得
    个人建了一个APPCAN移动前端开发交流QQ群258213194
    APPCAN MAS接口之AJAX
    JavaScript与DOM
    如何让网页在浏览器标题栏显示自己制作的图标ico
  • 原文地址:https://www.cnblogs.com/zhuji/p/6252074.html
Copyright © 2020-2023  润新知