📄 directorymanagement.cs
字号:
#region Using directives
using System;
using System.Text;
using System.Collections;
#endregion
namespace ControlUtil
{
public class DirectoryManagement
{
public struct FileStruct
{
public string FileName;
public bool IsDirectory;
public bool IsDrive;
public FileStruct(string fm, bool dir, bool dri)
{
FileName = fm;
IsDirectory = dir;
IsDrive = dri;
}
}
private FileStruct _FileStruct;
private ArrayList list;
public DirectoryManagement()
{
}
public DirectoryManagement(string strDirectoryList)
{
Binding(strDirectoryList);
}
private void Binding(string strDirectoryList)
{
int intDriveIndex = strDirectoryList.LastIndexOf("<");
int intDirectoryIndex = strDirectoryList.LastIndexOf("|");
int intFileIndex = strDirectoryList.LastIndexOf(">");
list = new ArrayList();
if (intDriveIndex != -1)
{
Bind(ref list, strDirectoryList, "<", false, true);
}
else
{
if (intDirectoryIndex != -1)
{
string strBindDirectoryList = strDirectoryList.Substring(0, intDirectoryIndex+1);
Bind(ref list,strBindDirectoryList,"|",true,false);
}
if (intFileIndex != -1)
{
string strBindFileList = strDirectoryList.Substring(intDirectoryIndex+1, intFileIndex - intDirectoryIndex);
Bind(ref list,strBindFileList,">",false,false);
}
}
}
private void Bind(ref ArrayList list, string strDirectoryList,string strPattern,bool IsDirectory,bool IsDrive)
{
int intPrev = 0;
int intNext = strDirectoryList.IndexOf(strPattern);
_FileStruct = new FileStruct(strDirectoryList.Substring(intPrev, intNext - intPrev), IsDirectory, IsDrive);
list.Add(_FileStruct);
while (intNext < strDirectoryList.Length - 1)
{
intPrev = intNext;
intNext = strDirectoryList.IndexOf(strPattern, intPrev + 1);
_FileStruct = new FileStruct(strDirectoryList.Substring(intPrev + 1, intNext - intPrev - 1), IsDirectory, IsDrive);
list.Add(_FileStruct);
}
}
public ArrayList GetList()
{
return list;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -