C# 使用C锁定文件#

C# 使用C锁定文件#,c#,file,attributes,filesystems,rename,C#,File,Attributes,Filesystems,Rename,我看到这个问题:,但它不符合我的需要。 如果我理解正确,只要该流被打开,文件就会被锁定 我希望在我的计算机中的某个文件夹中有一个文件列表,无法编辑或重命名 编辑预防很简单-我只设置了System.IO.FileAttributes.ReadOnly(工作正常) 现在我需要防止重命名文件和目录我的理解是重命名或移动都是核心的删除操作。你可以试着去捕捉和预防。我不确定你是否真的能做你想做的事情,因为似乎没有一个标志 这可能会有帮助。 您可以简单地使用内置在您正在使用的任何文件系统中的权限系统。(这

我看到这个问题:,但它不符合我的需要。
如果我理解正确,只要该流被打开,文件就会被锁定

我希望在我的计算机中的某个文件夹中有一个文件列表,无法编辑或重命名
编辑预防很简单-我只设置了
System.IO.FileAttributes.ReadOnly
(工作正常)


现在我需要防止重命名文件和目录我的理解是重命名或移动都是核心的删除操作。你可以试着去捕捉和预防。我不确定你是否真的能做你想做的事情,因为似乎没有一个标志

这可能会有帮助。

您可以简单地使用内置在您正在使用的任何文件系统中的权限系统。(这就是它的目的)readonly仍然允许文件重命名,另外我需要确保文件夹不能被重命名。我不是说将文件标记为“只读”,我是说完全拒绝特定用户、组或容器的访问@TimothyGroote的可能重复项你能提供一个代码/函数/属性来做到这一点吗?或者至少给我一个关键字来搜索jfi:在一个文件系统中重命名是一个单独的操作,而不是删除。@EugeneMayevski'EldoSCorp您能在此基础上展开吗。你说的文件系统是指路径/文件夹吗?NTFS和FAT中都有吗?我知道NTFS是一个日志系统,所以这是有意义的,但FAT不是它在这方面的工作原理。不是不同意,只是想了解更多。文件系统驱动程序从操作系统接收不同的请求来执行各种操作。存在“打开文件”、“写入文件”、“删除文件”等操作。还有一个“移动文件”操作,其中新旧文件名是该操作的参数。文件名包括路径,但路径必须在同一文件系统中。也就是说,如果将file\PathA\File1重命名为file\PathB\File2,则没有删除File1的命令-它已重命名/移动,并且未被删除。