删除浏览器中已打开项目的文件夹
本文关键字:项目 文件夹 浏览器 删除 | 更新日期: 2023-09-27 18:07:05
sdel = Server.MapPath("~/Media_Extracted_Content" + "/" + sfolder);
Directory.Delete(sdel,true);
'sfolder'包含不同的子文件夹,所有子文件夹都包含不同的项目。所有项目,如图像文件,音频文件,视频文件在浏览器中打开。我从这个现有的位置复制项目到新的位置,之后我必须从我的系统中删除这个目录。每当我试图做到这一点,它显示错误,目录不是空的。此外,当我试图从子文件夹中删除单个项目时,它显示这个文件正在被另一个进程使用的错误。
我认为在服务器或主机您没有给予权限到文件夹,即允许读取和写入文件夹
请尝试这两个函数/方法。
你只需要将这两个函数粘贴到类文件中(例如class1.cs)。
在(aspx.cs)中给源和目标赋值
例如source = Server。MapPath("~/Media_Extracted_Content/" + sourcefolder);
目的地=服务器。MapPath("~/Media_Extracted_Content/" + destinationfolder);
并调用classobject。移动文件(来源、目的地,真的);
public void createfolder(string directorypath)
{
// CREATE folder
try
{
Directory.CreateDirectory(directorypath);
}
catch (Exception ex)
{ }
}
public void MoveFiles(string source, string destination, bool overwrite)
{
System.IO.DirectoryInfo inputDir = new System.IO.DirectoryInfo(source);
System.IO.DirectoryInfo outputDir = new System.IO.DirectoryInfo(destination);
try
{
if ((inputDir.Exists))
{
if (!(outputDir.Exists))
{
createfolder(destination);
// outputDir.Create();
}
//Get Each files and copy
System.IO.FileInfo file = null;
foreach (System.IO.FileInfo eachfile in inputDir.GetFiles())
{
file = eachfile;
if ((overwrite))
{
file.CopyTo(System.IO.Path.Combine(outputDir.FullName, file.Name), true);
}
else
{
if (((System.IO.File.Exists(System.IO.Path.Combine(outputDir.FullName, file.Name))) == false))
{
file.CopyTo(System.IO.Path.Combine(outputDir.FullName, file.Name), false);
}
}
System.IO.File.Delete(file.FullName);
}
//Sub folder access code
System.IO.DirectoryInfo dir = null;
foreach (System.IO.DirectoryInfo subfolderFile in inputDir.GetDirectories())
{
dir = subfolderFile;
//Destination path
if ((dir.FullName != outputDir.ToString()))
{
MoveFiles(dir.FullName, System.IO.Path.Combine(outputDir.FullName, dir.Name), overwrite);
}
System.IO.Directory.Delete(dir.FullName);
}
}
}
catch (Exception ex)
{
}
}