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);
    }
    
    }
  • 相关阅读:
    java socket解析和发送二进制报文工具(附java和C++转化问题)
    hibernate缓存机制(二级缓存)
    Spring MVC中前后台数据传输小结
    NUC972 MDK NON-OS
    代码是如何控制硬件的?
    C语言位运算+实例讲解(转)
    C语言程序真正的启动函数
    51单片机的时钟及总线时序和总线扩展
    如何通过Keil将程序正确的下载进flash中
    说说M451例程讲解之串口
  • 原文地址:https://www.cnblogs.com/AXIA-zy/p/5101467.html
Copyright © 2011-2022 走看看