如何检查我是否可以在特定文件夹中创建文件

Pab*_*tyk 8 .net c# filesystems permissions

我需要知道我是否可以在特定文件夹中创建一个文件,但有太多的东西需要检查,如权限,重复文件等.我正在寻找类似的东西File.CanCreate(@"C:\myfolder\myfile.aaa",但还没有找到这样的方法.我唯一想到的是尝试创建一个虚拟文件并检查异常,但这是一个影响性能的无法解决方案.你知道更好的解决方案吗?

Mar*_*ell 17

实际上,创建虚拟文件不会对大多数应用程序产生巨大的性能影响.当然,如果你有创建但不破坏的高级权限,它可能会有点毛茸茸......

Guids对于随机名称总是很方便(以避免冲突) - 类似于:

string file = Path.Combine(dir, Guid.NewGuid().ToString() + ".tmp");
// perhaps check File.Exists(file), but it would be a long-shot...
bool canCreate;
try
{
    using (File.Create(file)) { }
    File.Delete(file);
    canCreate = true;
}
catch
{
    canCreate = false;
}
Run Code Online (Sandbox Code Playgroud)