【发布时间】:2012-08-21 13:59:02
【问题描述】:
给定一个文件的路径,我想创建这个文件,以及指向它的目录字符串(如果它们不存在);但我不希望我的程序的任何其他实例能够看到其中没有文件的基本目录。
基本上,我想一次自动创建所需的目录和文件。据我了解,它必须分两步完成(创建目录,创建文件),所以我在考虑使用锁定文件,但同样的问题适用:我在哪里创建锁定文件?我不知道需要创建多少级文件夹,并且在某些时候,我可能会失去写入权限,因此锁定文件没有“安全的地方”。
然后我考虑使用锁定目录而不是锁定文件,但是我找不到任何“测试和设置”方法来创建目录(Directory.CreateDirectory(path) 不会告诉你它是否做了什么)。
那么正确的做法是什么?
【问题讨论】:
-
这取决于要尝试制作文件夹+文件的其他内容。是你的应用吗?使用系统范围的互斥体/其他 IPC。您可以查看 NTFS API,它是事务性的,尽管您可能需要为它 P/Invoke
-
使用临时文件有什么问题?随机文件名。任何其他应用程序知道它的可能性很小。