📄 directoryex.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 + -