zoukankan      html  css  js  c++  java
  • 每天一点小知识001--unity在ios系统的文件读取

    通过http://blog.csdn.net/joyhen/article/details/8572094这个博客修改的代码,unity在ios的文件操作必须通过流来读取写入。否则文件放在沙盒位置也是读不出来的

    using UnityEngine;
    using System.Collections;
    using System;
    using System.IO;
    using System.Text;
    
    public class FileHandle {
    
    private FileHandle(){}
    public static readonly FileHandle instance = new FileHandle();
    
    //the filepath if there is a file
    public bool isExistFile(string filepath){
    return File.Exists(filepath);
    }
    
    public bool IsExistDirectory(string directorypath){
    return Directory.Exists(directorypath);
    }
    
    public bool Contains(string Path,string seachpattern){
    try{
    string[] fileNames = GetFilenNames(Path,seachpattern,false);
    return fileNames.Length!=0;
    }
    catch{
    return false;
    }
    }
    
    //return a file all rows
    public static int GetLineCount(string filepath){
    string[] rows = File.ReadAllLines(filepath);
    return rows.Length;
    }
    
    public bool CreateFile(string filepath){
    try{
    if(!isExistFile(filepath)){
    StreamWriter sw;
    FileInfo file = new FileInfo(filepath);
    //FileStream fs = file.Create();
    //fs.Close();
    sw = file.CreateText();
    sw.Close();
    }
    }
    catch{
    return false;
    }
    return true;
    }
    
    public string[] GetFilenNames(string directorypath,string searchpattern,bool isSearchChild){
    if(!IsExistDirectory(directorypath)){
    throw new FileNotFoundException();
    }
    try{
    
    return Directory.GetFiles(directorypath,searchpattern,isSearchChild?SearchOption.AllDirectories:SearchOption.TopDirectoryOnly);
    }
    catch{
    return null;
    }
    
    }
    
    public void WriteText(string filepath,string content)
    {
    //File.WriteAllText(filepath,content);
    FileStream fs = new FileStream(filepath,FileMode.Append);
    StreamWriter sw = new StreamWriter(fs,Encoding.UTF8);
    sw.WriteLine(content);
    sw.Close();
    fs.Close();
    Debug.Log("write: filepath: "+filepath);
    Debug.Log("write: content: "+content);
    Debug.Log("写入完毕");
    }
    
    public void AppendText(string filepath,string content){
    File.AppendAllText(filepath,content);
    }
    
    public string FileToString(string filepath,Encoding encoding){
    FileStream fs = new FileStream(filepath,FileMode.Open,FileAccess.Read);
    StreamReader reader = new StreamReader(fs,encoding);
    try{
    return reader.ReadToEnd();
    }
    catch{
    return string.Empty;
    }
    finally{
    fs.Close();
    reader.Close();
    Debug.Log("读取完毕");
    }
    }
    
    public void ClearFile(string filepath){
    File.Delete(filepath);
    CreateFile(filepath);
    }
    
    }
  • 相关阅读:
    Spring中Bean及@Bean的理解
    Visual Studio(VS)秘钥集合
    PLC不能初始化问题
    【原创】C# API 未能创建 SSL/TLS 安全通道 问题解决
    【原创】XAF CriteriaOperator 使用方式汇总
    【原创】.Net WebForm Calendar 日历控件常用方法
    【原创】XAF常用属性字段设置
    【记录】Windows 操作系统常用快捷命令
    【XAF】常见错误以及对应解决方法
    【原创】XAF ITreeNode+NonPersistent 使用方式
  • 原文地址:https://www.cnblogs.com/AXIA-zy/p/5101467.html
Copyright © 2011-2022 走看看