123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- //------------------------------------------------------------
- // Game Framework
- // Copyright © 2013-2021 loyalsoft. All rights reserved.
- // Homepage: http://www.game7000.com/
- // Feedback: http://www.game7000.com/
- //------------------------------------------------------------
- using System.Collections.Generic;
- using System.IO;
- namespace GameFramework.FileSystem
- {
- /// <summary>
- /// 文件系统接口。
- /// </summary>
- public interface IFileSystem
- {
- /// <summary>
- /// 获取文件系统完整路径。
- /// </summary>
- string FullPath
- {
- get;
- }
- /// <summary>
- /// 获取文件系统访问方式。
- /// </summary>
- FileSystemAccess Access
- {
- get;
- }
- /// <summary>
- /// 获取文件数量。
- /// </summary>
- int FileCount
- {
- get;
- }
- /// <summary>
- /// 获取最大文件数量。
- /// </summary>
- int MaxFileCount
- {
- get;
- }
- /// <summary>
- /// 获取文件信息。
- /// </summary>
- /// <param name="name">要获取文件信息的文件名称。</param>
- /// <returns>获取的文件信息。</returns>
- FileInfo GetFileInfo(string name);
- /// <summary>
- /// 获取所有文件信息。
- /// </summary>
- /// <returns>获取的所有文件信息。</returns>
- FileInfo[] GetAllFileInfos();
- /// <summary>
- /// 获取所有文件信息。
- /// </summary>
- /// <param name="results">获取的所有文件信息。</param>
- void GetAllFileInfos(List<FileInfo> results);
- /// <summary>
- /// 检查是否存在指定文件。
- /// </summary>
- /// <param name="name">要检查的文件名称。</param>
- /// <returns>是否存在指定文件。</returns>
- bool HasFile(string name);
- /// <summary>
- /// 读取指定文件。
- /// </summary>
- /// <param name="name">要读取的文件名称。</param>
- /// <returns>存储读取文件内容的二进制流。</returns>
- byte[] ReadFile(string name);
- /// <summary>
- /// 读取指定文件。
- /// </summary>
- /// <param name="name">要读取的文件名称。</param>
- /// <param name="buffer">存储读取文件内容的二进制流。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFile(string name, byte[] buffer);
- /// <summary>
- /// 读取指定文件。
- /// </summary>
- /// <param name="name">要读取的文件名称。</param>
- /// <param name="buffer">存储读取文件内容的二进制流。</param>
- /// <param name="startIndex">存储读取文件内容的二进制流的起始位置。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFile(string name, byte[] buffer, int startIndex);
- /// <summary>
- /// 读取指定文件。
- /// </summary>
- /// <param name="name">要读取的文件名称。</param>
- /// <param name="buffer">存储读取文件内容的二进制流。</param>
- /// <param name="startIndex">存储读取文件内容的二进制流的起始位置。</param>
- /// <param name="length">存储读取文件内容的二进制流的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFile(string name, byte[] buffer, int startIndex, int length);
- /// <summary>
- /// 读取指定文件。
- /// </summary>
- /// <param name="name">要读取的文件名称。</param>
- /// <param name="stream">存储读取文件内容的二进制流。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFile(string name, Stream stream);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>存储读取文件片段内容的二进制流。</returns>
- byte[] ReadFileSegment(string name, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="offset">要读取片段的偏移。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>存储读取文件片段内容的二进制流。</returns>
- byte[] ReadFileSegment(string name, int offset, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="buffer">存储读取文件片段内容的二进制流。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, byte[] buffer);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="buffer">存储读取文件片段内容的二进制流。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, byte[] buffer, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="buffer">存储读取文件片段内容的二进制流。</param>
- /// <param name="startIndex">存储读取文件片段内容的二进制流的起始位置。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, byte[] buffer, int startIndex, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="offset">要读取片段的偏移。</param>
- /// <param name="buffer">存储读取文件片段内容的二进制流。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, int offset, byte[] buffer);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="offset">要读取片段的偏移。</param>
- /// <param name="buffer">存储读取文件片段内容的二进制流。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, int offset, byte[] buffer, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="offset">要读取片段的偏移。</param>
- /// <param name="buffer">存储读取文件片段内容的二进制流。</param>
- /// <param name="startIndex">存储读取文件片段内容的二进制流的起始位置。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, int offset, byte[] buffer, int startIndex, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="stream">存储读取文件片段内容的二进制流。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, Stream stream, int length);
- /// <summary>
- /// 读取指定文件的指定片段。
- /// </summary>
- /// <param name="name">要读取片段的文件名称。</param>
- /// <param name="offset">要读取片段的偏移。</param>
- /// <param name="stream">存储读取文件片段内容的二进制流。</param>
- /// <param name="length">要读取片段的长度。</param>
- /// <returns>实际读取了多少字节。</returns>
- int ReadFileSegment(string name, int offset, Stream stream, int length);
- /// <summary>
- /// 写入指定文件。
- /// </summary>
- /// <param name="name">要写入的文件名称。</param>
- /// <param name="buffer">存储写入文件内容的二进制流。</param>
- /// <returns>是否写入指定文件成功。</returns>
- bool WriteFile(string name, byte[] buffer);
- /// <summary>
- /// 写入指定文件。
- /// </summary>
- /// <param name="name">要写入的文件名称。</param>
- /// <param name="buffer">存储写入文件内容的二进制流。</param>
- /// <param name="startIndex">存储写入文件内容的二进制流的起始位置。</param>
- /// <returns>是否写入指定文件成功。</returns>
- bool WriteFile(string name, byte[] buffer, int startIndex);
- /// <summary>
- /// 写入指定文件。
- /// </summary>
- /// <param name="name">要写入的文件名称。</param>
- /// <param name="buffer">存储写入文件内容的二进制流。</param>
- /// <param name="startIndex">存储写入文件内容的二进制流的起始位置。</param>
- /// <param name="length">存储写入文件内容的二进制流的长度。</param>
- /// <returns>是否写入指定文件成功。</returns>
- bool WriteFile(string name, byte[] buffer, int startIndex, int length);
- /// <summary>
- /// 写入指定文件。
- /// </summary>
- /// <param name="name">要写入的文件名称。</param>
- /// <param name="stream">存储写入文件内容的二进制流。</param>
- /// <returns>是否写入指定文件成功。</returns>
- bool WriteFile(string name, Stream stream);
- /// <summary>
- /// 写入指定文件。
- /// </summary>
- /// <param name="name">要写入的文件名称。</param>
- /// <param name="filePath">存储写入文件内容的文件路径。</param>
- /// <returns>是否写入指定文件成功。</returns>
- bool WriteFile(string name, string filePath);
- /// <summary>
- /// 将指定文件另存为物理文件。
- /// </summary>
- /// <param name="name">要另存为的文件名称。</param>
- /// <param name="filePath">存储写入文件内容的文件路径。</param>
- /// <returns>是否将指定文件另存为物理文件成功。</returns>
- bool SaveAsFile(string name, string filePath);
- /// <summary>
- /// 重命名指定文件。
- /// </summary>
- /// <param name="oldName">要重命名的文件名称。</param>
- /// <param name="newName">重命名后的文件名称。</param>
- /// <returns>是否重命名指定文件成功。</returns>
- bool RenameFile(string oldName, string newName);
- /// <summary>
- /// 删除指定文件。
- /// </summary>
- /// <param name="name">要删除的文件名称。</param>
- /// <returns>是否删除指定文件成功。</returns>
- bool DeleteFile(string name);
- }
- }
|