如何防止其他进程随意更改文件夹?我是这样做的:
import os
username=os.environ.get("USERNAME")
os.system(r"echo y| cacls MyFolder /T /P %s:R > NUL"%username) # read only
os.system(r"echo y| cacls MyFolder /T /P %s:F > NUL"%username) # full access
这样做的缺点是什么?最好的方法是什么?
在一般情况下,您不能这样做。最好将文件系统视为您没有同步的多线程对象。(http://blogs.msdn.com/b/jaredpar/archive/2009/12/10/the-file-system-is-unpredictable.aspx?Redirected=true)
您上面的方法修改了权限,使得与您的进程相同的用户只能读取(或读/写)文件;它还会以同样的方式阻止您自己的进程。
当然请注意,如果您授予读取权限,则用户可以将文件复制到其他地方并在那里进行修改。