我正在使用C#开发Windows桌面应用程序。在其中我想实现某个功能,以便用户只能在根文件夹中的文件夹内创建一个文件。
假设我的根文件夹是A并且其中有A1,A2,A3文件夹,则用户可以在任何文件夹A1,A2,A3中创建文件。但是不应该允许他直接在A中创建文件。
所以简而言之,我想在一个特定文件夹中阻止文件创建。有没有办法实现这个?是否可以使用shell脚本?
提前致谢!
答案 0 :(得分:0)
创建一个用于创建文件的.net方法的包装器。然后实现一个黑名单(或白名单),您可以使用它来指定要阻止的文件夹(或者在允许列表允许的情况下)。
启动时,将列表加载到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
答案 1 :(得分:0)
创建文件夹时
您可以查看父文件夹名称...
Ex:Directory.GetParent(&#34; A \ A1&#34;); 这将为文件夹名称A提供DirectoryInfo名称。
您可以将RootFolderName与GetParent Name进行比较,并限制应用程序的创建。
由于