RaUI/Source/Itrycn_Project2/MdiForm/MyFileSystemInfo.cs
zilinsoft b4e236fd55 ### 2025-01-06 星期一更新
------
#### OnLineUpgradeConfig    V1.0.2501.0601
- *.[修复]修复用户管理列表无法默认勾选已选择用户的BUG。
#### RaUI    V4.0.2501.0601
- *.[新增]RyFiles类新增SetFileDate、SetFileCreationTime、SetFileLastWriteTime方法。
- *.[新增]RyFiles.CopyBigFile方法现在会同步来源文件的创建和修改时间。
- *.[新增]ryQuickSQL类新增GetPostData函数,将数据快速转成Post数据。
- *.[改进]执行MySQL下的ExecuteNonQuery时,如果遇到连接关闭错误,允许重连并重新执行。
- *.[改进]IDbInterface在执行新的SQL语句前,自动清空最后错误。
- *.[修复]修复LayeredForm窗体以正常窗体打开的时候,文本框无法编辑的BUG。
- *.[修复]修复ApkOp获取apk权限时可能带乱码的BUG。
- *.[修复]修复WeifenLuo.WinFormsUI.Docking的ResourceManager.GetString路径不对导致报错的BUG。
2025-01-06 11:14:35 +08:00

92 lines
2.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
using static System.Net.WebRequestMethods;
namespace Itrycn_Project2
{
public class MyFileSystemInfo
{
public MyFileSystemInfo(FileSystemInfo fileSystemInfo,string name)
{
if (fileSystemInfo == null) throw new ArgumentNullException("fileSystemInfo");
ReLoad(fileSystemInfo,name);
}
public void ReLoad()
{
ReLoad(FullName);
}
public void ReLoad(string path)
{
if(System.IO.File.Exists(path))
{
ReLoad(new FileInfo(path), "");
}
else if (System.IO.Directory.Exists(path))
{
ReLoad(new DirectoryInfo(path), "");
}
}
public void ReLoad(FileSystemInfo fileSystemInfo)
{
ReLoad(fileSystemInfo, "");
}
public void ReLoad(FileSystemInfo fileSystemInfo, string name)
{
var info = fileSystemInfo;
if (name.Length == 0)
{
this.Name = info.Name;
}
else { this.Name = name; }
Extension = info.Extension;
LastWriteTime = info.LastWriteTime;
CreationTime = info.CreationTime;
FullName = info.FullName;
Attributes = info.Attributes;
AsDirectory = info as DirectoryInfo;
AsFile = info as FileInfo;
IsDirectory = this.AsDirectory != null;
Length = IsDirectory ? -1 : AsFile.Length;
}
public bool IsDirectory { get;private set; }
public DirectoryInfo AsDirectory { get; private set; }
public FileInfo AsFile { get; private set; }
public string Name{get; set;} = "";
public string Extension { get; private set; } = "";
public DateTime LastWriteTime { get; private set; }
public DateTime CreationTime { get; private set; }
public string FullName { get; private set; } = "";
public FileAttributes Attributes { get;private set; }
public long Length { get; private set; } = 0;
public IEnumerable GetFileSystemInfos()
{
ArrayList children = new ArrayList();
if (this.IsDirectory)
{
if (this.AsDirectory.Exists) {
foreach (var x in this.AsDirectory.GetDirectories()) {
children.Add(new MyFileSystemInfo(x, ""));
}
foreach (var x in this.AsDirectory.GetFiles()) {
children.Add(new MyFileSystemInfo(x, ""));
}
}
}
return children;
}
}
}