【问题标题】:Avoid folder deletion from code避免从代码中删除文件夹
【发布时间】:2015-08-19 10:46:46
【问题描述】:

我通过我的 C# 代码将 ".{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}" 附加到文件夹名称来锁定文件夹。

带有附加文本的新文件夹名称的位置保存在变量new_dir 中。

我的代码将数据附加到此文件夹中的 .txt 文件中。现在我想避免这个文件夹被任何用户甚至管理员删除。 Windows 通过更改组策略允许这样做,但我不希望这样。

我想出了在该文件夹中打开一个文件并保持打开状态以便该文件夹不会被删除的想法,但我无法实现它。

谁能帮我解决如何在我的程序中实现这个概念?

【问题讨论】:

    标签: c# directory


    【解决方案1】:
    static void Main()
    {
        using (var stream = File.OpenRead(@"C:\Temp\Foldertest\SomeTextFile.txt"))
        {
            Application.Run(new Form1());
        }
    }
    

    文件在using-语句中打开,无法删除文件夹或父文件夹。一旦它退出,流将被关闭并且文件/文件夹可以被删除。所以这取决于你在using 中做什么。

    【讨论】:

    • 感谢蒂姆,但我使用的是 Windows 表单并在单击按钮时锁定文件夹,因此在表单退出后我仍然可以防止文件夹被删除
    • @NishantDwivedi:为什么是 winforms 应用程序? Windows 服务会更好
    • 我对使用 Windows 服务的了解较少....但我问...这可能吗????
    • @NishantDwivedi:理论上,但是应用程序不能通过任务管理器退出或结束。看看我编辑的版本。您甚至可以在不结束应用程序的情况下隐藏表单。
    • public void btnSave_Click(object sender, EventArgs e) { dir = @"D:\" + textBoxData.Text; new_dir = 目录 + for_lock;密码();使用 (var stream = File.OpenRead(@"D:\" + new_dir + @"\data.txt"))
    猜你喜欢
    • 2013-02-15
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多