protected
void Button1_Click(
object sender, EventArgs e)
{
string path = "";
string physicsPath = Server.MapPath(Request.ApplicationPath); // 将当前虚拟根路径转为实际物理路径
string toFindDirectoryName = " ss "; // 要查找的文件夹名
FindDirectory(physicsPath + " \\ ", toFindDirectoryName, out path); // 用递归的方式去查找文件夹
if (! string.IsNullOrEmpty(path)) // 如果存在,返回该文件夹所在的物理路径
{
// 将该物理路径转为虚拟路径
Response.Write(GetVirtualPath(path, Request.ApplicationPath));
}
else
{
// 没有找到路径,创建新文件夹
Directory.CreateDirectory(physicsPath + " \\ " + toFindDirectoryName);
}
}
/// <summary>
/// 将物理路径转为虚拟路径
/// </summary>
/// <param name="physicsPath"> 物理路径 </param>
/// <param name="virtualRootPath"> 虚拟根路径 </param>
/// <returns></returns>
private string GetVirtualPath( string physicsPath, string virtualRootPath)
{
int index = physicsPath.IndexOf(virtualRootPath.Substring( 1));
return " / " + physicsPath.Substring(index).Replace( " \\ ", " / ");
}
/// <summary>
/// 在指定目录下递归查找子文件夹
/// </summary>
/// <param name="bootPath"> 根文件夹路径 </param>
/// <param name="directoryName"> 要查找的文件夹名 </param>
private void FindDirectory( string bootPath, string directoryName, out string filePath)
{
// 在指定目录下递归查找子文件夹
DirectoryInfo dir = new DirectoryInfo(bootPath);
filePath = "";
try
{
foreach (DirectoryInfo d in dir.GetDirectories()) // 查找子文件夹
{
if (d.Name == directoryName) // 找到,返回文件夹路径
{
filePath = d.FullName;
break;
}
FindDirectory(bootPath + d.Name + " \\ ", directoryName, out filePath); // 否则继续查找
}
}
catch (Exception e)
{
Response.Write(e.Message);
}
}
{
string path = "";
string physicsPath = Server.MapPath(Request.ApplicationPath); // 将当前虚拟根路径转为实际物理路径
string toFindDirectoryName = " ss "; // 要查找的文件夹名
FindDirectory(physicsPath + " \\ ", toFindDirectoryName, out path); // 用递归的方式去查找文件夹
if (! string.IsNullOrEmpty(path)) // 如果存在,返回该文件夹所在的物理路径
{
// 将该物理路径转为虚拟路径
Response.Write(GetVirtualPath(path, Request.ApplicationPath));
}
else
{
// 没有找到路径,创建新文件夹
Directory.CreateDirectory(physicsPath + " \\ " + toFindDirectoryName);
}
}
/// <summary>
/// 将物理路径转为虚拟路径
/// </summary>
/// <param name="physicsPath"> 物理路径 </param>
/// <param name="virtualRootPath"> 虚拟根路径 </param>
/// <returns></returns>
private string GetVirtualPath( string physicsPath, string virtualRootPath)
{
int index = physicsPath.IndexOf(virtualRootPath.Substring( 1));
return " / " + physicsPath.Substring(index).Replace( " \\ ", " / ");
}
/// <summary>
/// 在指定目录下递归查找子文件夹
/// </summary>
/// <param name="bootPath"> 根文件夹路径 </param>
/// <param name="directoryName"> 要查找的文件夹名 </param>
private void FindDirectory( string bootPath, string directoryName, out string filePath)
{
// 在指定目录下递归查找子文件夹
DirectoryInfo dir = new DirectoryInfo(bootPath);
filePath = "";
try
{
foreach (DirectoryInfo d in dir.GetDirectories()) // 查找子文件夹
{
if (d.Name == directoryName) // 找到,返回文件夹路径
{
filePath = d.FullName;
break;
}
FindDirectory(bootPath + d.Name + " \\ ", directoryName, out filePath); // 否则继续查找
}
}
catch (Exception e)
{
Response.Write(e.Message);
}
}