namespace XGame.Framework.FileSystem
{
///
/// 文件操作接口
///
public interface IFileOperator
{
///
/// 获取文件名
///
///
///
///
string GetFileName(string fullName, bool withoutExt = true);
///
/// 拓展名
///
/// 文件全路径(含拓展名)
/// 拓展名(不包含“.”)
string Extension(string fullName);
///
/// 文件是否存在
///
/// 文件全路径(含拓展名)
/// True: 存在; False: 不存在;
bool Exist(string fullName);
///
/// 删除文件
///
/// 文件全路径(含拓展名)
/// True: 删除成功; False: 删除失败;
bool Delete(string fullName);
///
/// 获取文件所在文件夹路径(全路径)
///
/// 文件全路径(含拓展名)
/// 文件夹全路径
string GetDirectory(string fullName);
///
/// 复制文件
/// TODO: 暂时只支持包外文件到包外
///
/// 源文件
/// 目标文件
/// 是否覆盖
/// True: 复制成功; False: 复制失败;
bool Copy(string source, string destination, bool overwrite);
///
/// 异步复制文件
///
/// 源文件
/// 包外文件全路径
/// 覆盖
///
ICopyFileAsync CopyFileAsync(string source, string destination, bool overwrite);
///
/// 移动文件
///
/// 源文件
/// 目标文件路径
void Move(string source, string destination);
///
/// 保存字节数组到本地
///
/// 文件全路径(包外)
///
void WriteAllBytes(string filePath, byte[] bytes);
///
/// 保存字符串到本地
///
/// 文件全路径(包外)
/// 内容
void WriteAllText(string filePath, string contents);
///
/// 读取文件
///
/// 文件全路径(包内包外都可以)
/// 文件内容
byte[] ReadAllBytes(string filePath);
///
/// 读取文本(UTF-8)
///
/// 文件全路径(包内包外都可以)
/// 文本内容
string ReadAllText(string filePath);
///
/// 异步读取文件
///
/// 文件全路径(包内包外都可以)
/// 文件内容
IReadFileAsync ReadFileAsync(string filePath);
///
/// 重命名
///
///
///
///
bool Rename(string from, string to);
}
}