删除浏览器中已打开项目的文件夹

本文关键字:项目 文件夹 浏览器 删除 | 更新日期: 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)
    {
    }
}