Files
DDUtility/DDUtilityApp/SPECDOCUMENT/SpecDocument.cs
2025-02-03 11:02:48 +09:00

129 lines
3.1 KiB
C#

using JWH;
using JWH.NETWORK;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DDUtilityApp.SPECDOCUMENT
{
[Serializable]
public class SpecDocument
{
#region [ Variables ] =================================================
#endregion
#region [ Properties ] ================================================
public string URI { get; set; } = string.Empty;
public string UID { get; set; } = string.Empty;
public string PWD { get; set; } = string.Empty;
public List<SpecInfo> SpecInfos { get; set; } = new List<SpecInfo>();
public List<FtpObject> Childs { get; set; } = new List<FtpObject>();
#endregion
#region [ SpecDocument ] ==============================================
public SpecDocument()
{
}
public SpecDocument(string uri, string uid, string pwd)
{
this.URI = uri;
this.UID = uid;
this.PWD = pwd;
}
#endregion
#region [ Public Methods ] ============================================
public bool ReBuild(int depth = 0)
{
FtpObject[] ftpObjects = this.GetChilds(depth);
this.Childs.Clear();
this.Childs.AddRange(ftpObjects);
return true;
}
public TreeNode GetTreeNode()
{
TreeNode node = new TreeNode(this.URI, 1, 0);
foreach(FtpObject child in this.Childs)
{
node.Nodes.Add(child.GetTreeNode());
}
return node;
}
public void Refresh(FtpObject ftpObject, int depth = 0)
{
}
public void Refresh(TreeNode node, int depth = 0)
{
FtpObject ftpObject = node.Tag as FtpObject;
if (ftpObject == null) return;
}
#endregion
#region [ Methods ] ===================================================
public FtpClient GetFtpClient()
{
try
{
FtpClient ftpClient = new FtpClient(this.URI, this.UID, this.PWD);
return ftpClient;
}
catch (Exception ex)
{
throw ex;
}
}
private FtpObject[] GetChilds(int depth = 0)
{
try
{
List<FtpObject> lstChild = new List<FtpObject>();
FtpClient ftpClient = this.GetFtpClient();
foreach(FtpObject child in ftpClient.GetFtpObjects(""))
{
lstChild.Add(child);
if (child.GetType() == typeof(FtpDirectory) && depth > 0)
{
FtpDirectory ftpDirectory = child as FtpDirectory;
ftpDirectory.GetChilds(ftpClient, depth - 1);
}
}
return lstChild.ToArray();
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
}
}