| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | using System;using System.IO;using System.Text;namespace YooAsset{	public class RawFileOperationHandle : OperationHandleBase, IDisposable	{		private System.Action<RawFileOperationHandle> _callback;		internal RawFileOperationHandle(ProviderBase provider) : base(provider)		{		}		internal override void InvokeCallback()		{			_callback?.Invoke(this);		}		/// <summary>		/// 完成委托		/// </summary>		public event System.Action<RawFileOperationHandle> Completed		{			add			{				if (IsValidWithWarning == false)					throw new System.Exception($"{nameof(RawFileOperationHandle)} is invalid");				if (Provider.IsDone)					value.Invoke(this);				else					_callback += value;			}			remove			{				if (IsValidWithWarning == false)					throw new System.Exception($"{nameof(RawFileOperationHandle)} is invalid");				_callback -= value;			}		}		/// <summary>		/// 等待异步执行完毕		/// </summary>		public void WaitForAsyncComplete()		{			if (IsValidWithWarning == false)				return;			Provider.WaitForAsyncComplete();		}		/// <summary>		/// 释放资源句柄		/// </summary>		public void Release()		{			this.ReleaseInternal();		}		/// <summary>		/// 释放资源句柄		/// </summary>		public void Dispose()		{			this.ReleaseInternal();		}		/// <summary>		/// 获取原生文件的二进制数据		/// </summary>		public byte[] GetRawFileData()		{			if (IsValidWithWarning == false)				return null;			string filePath = Provider.RawFilePath;			return FileUtility.ReadAllBytes(filePath);		}		/// <summary>		/// 获取原生文件的文本数据		/// </summary>		public string GetRawFileText()		{			if (IsValidWithWarning == false)				return null;			string filePath = Provider.RawFilePath;			return FileUtility.ReadAllText(filePath);		}		/// <summary>		/// 获取原生文件的路径		/// </summary>		public string GetRawFilePath()		{			if (IsValidWithWarning == false)				return string.Empty;			return Provider.RawFilePath;		}	}}
 |