阻塞以编程方式在特定文件夹中创建文件

本文关键字:文件夹 创建 文件 编程 方式 | 更新日期: 2023-09-27 17:50:58

我正在使用c#开发Windows桌面应用程序。在它我想实现一个特定的功能,这样的用户可以创建一个文件,只有在根文件夹的文件夹内。

假设我的根文件夹是A,其中有A1,A2,A3文件夹,用户可以在任意文件夹A1,A2,A3中创建文件。但是不应该允许他直接在a中创建文件。

所以简而言之,我只想在一个特定的文件夹中阻止文件创建。有什么办法实现这一点吗?是否可以使用shell脚本?

提前感谢!

阻塞以编程方式在特定文件夹中创建文件

创建用于创建文件的。net方法的包装器。然后实现一个黑名单(或白名单),您可以使用它来指定要阻止哪些文件夹(或者在while-list允许的情况下)。

在启动时,将列表加载到List<string>中,并在包装器中使用它来确定是否执行

操作

例如,如果您使用File.Create创建文件;您的包装器可能如下所示

public void CreateFile(string folderName, string fileName, IList<string> whiteList)
{
  // can I create the file in this folder ????
  if (!whiteList.Any(f => f.Equals(folderName, StringComparison.InvariantCultureIgnoreCase)))
  {
   // No apparently not... I should now throw an exception
  }
  // create the file
  File.Create(string.Format("{0}/{1}", folderName, fileName)).Dispose();
}

现在,当你想在你的应用程序中创建一个文件,使用CreateFile而不是File.Create

创建文件夹时,

您可以选择父文件夹名称…

例:Directory.GetParent("' A1");这将给你文件夹名称A作为DirectoryInfo Name。

你可以比较你的RootFolderName和GetParent Name,并限制从应用程序创建。

谢谢