⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directoryex.cs

📁 本系统是在asp版《在线文件管理器》的基础上设计制作
💻 CS
字号:
// 创建说明:扩充的目录处理类,通过它代替系统的Directory可以解决找不到路径的bug
// 创建人:宝玉
// 创建日期:2005-02-27

using System;
using System.IO;
using System.Configuration;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.OleDb;
using System.Text;
using System.Collections.Specialized;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace CommunityServer.Components
{
	// 扩充的目录处理类,通过它代替系统的Directory可以解决找不到路径的bug
	// 感谢Netasp(http://www.spbdev.com)提供.BTW: 他的asp.net文件管理系统还真是好用:)
	//
	public class DirectoryEx
	{
		[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
		public static extern bool CreateDirectory(string path, int lpSecurityAttributes);
		public static bool CreateDirectory(string sPath)
		{
			return CreateDirectory(sPath,0);
		}
		public static string GetMainName(string sData,string sSeparator)
		{
			if(sData==sSeparator || sData.Length<=sSeparator.Length)
			{
				return "";
			}
			else
			{
				int iPos = sData.Substring(sData.Length-sSeparator.Length)==sSeparator ? sData.LastIndexOf(sSeparator,sData.Length-sSeparator.Length-1) : sData.LastIndexOf(sSeparator);
				return iPos>-1 ? sData.Substring(0,iPos) : "";
			}
		}
		public static string GetMainName(string sData,char cSeparator)
		{
			if(sData.Length<2)
			{
				return "";
			}
			int iPos = sData[sData.Length-1]==cSeparator ? sData.LastIndexOf(cSeparator,sData.Length-2) : sData.LastIndexOf(cSeparator);
			if(iPos<0)
			{
				return "";
			}
			else
			{
				return sData.Substring(0,iPos);
			}
		}
		public static string GetExtName(string sData,string sSeparator)
		{
			if(sData==sSeparator || sData.Length<=sSeparator.Length)
			{
				return "";
			}
			else
			{
				int iPos=sData.LastIndexOf(sSeparator);
				if(iPos<0 || iPos+sSeparator.Length>=sData.Length)
				{
					return "";
				}
				else
				{
					return sData.Substring(iPos + sSeparator.Length);
				}
			}
		}
		public static string GetExtName(string sData,char cSeparator)
		{
			int iPos=sData.LastIndexOf(cSeparator);
			if(iPos<0 || iPos+1==sData.Length)
			{
				return "";
			}
			else
			{
				return sData.Substring(iPos + 1);
			}
		}
		public static long Copy(string sSourDir,string sDistDir)
		{
			return Copy(sSourDir,sDistDir,0);
		}
		public static long Copy(string sSourDir,string sDistDir,long lCount)
		{
			int k,iBound;
			if(CreateDirectory(sDistDir))
			{
				string[] arySubFile=Directory.GetFiles(sSourDir);
				iBound=arySubFile.GetUpperBound(0);
				for(k=0;k<=iBound;k++)
				{
					File.Copy(arySubFile[k],sDistDir + Path.DirectorySeparatorChar.ToString() + GetExtName(arySubFile[k],Path.DirectorySeparatorChar));
				}
				lCount+=(iBound + 1);
				string[] arySubDir=Directory.GetDirectories(sSourDir);
				iBound=arySubDir.GetUpperBound(0);
				for(k=0;k<=iBound;k++)
				{
					lCount=Copy(arySubDir[k],sDistDir + Path.DirectorySeparatorChar.ToString() + GetExtName(arySubDir[k],Path.DirectorySeparatorChar),lCount);
				}
			}
			return lCount;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -