C# - 检查UNC文件共享(Winforms)上的文件夹写权限

时间:2017-12-29 23:34:18

标签: c# winforms file file-permissions

我正在尝试检查NAS文件共享上的UNC文件路径,然后再将文件复制到其中。我知道我可能会在实际副本本身上出错(而且我现在因为我目前没有权限在那里写),但是我还要事先检查程序启动时让用户知道是否或在尝试之前,他们不能将文件复制到那里。

我的问题是,当我确定我没有写入权限时,这总是返回true,因为我无法在文件资源管理器中复制和粘贴文件,而C#中的实际File.Copy返回“访问路径'\ nascharf06 \ uas \ to_be_processed \ Andy \ A.jpg'被拒绝“。

为什么这会继续变回真实?

string folder = @"\\nascharf06\uas\to_be_processed\Andy";
FileIOPermission f2 = new FileIOPermission(FileIOPermissionAccess.Write, folder);
        try
        {
            f2.Demand();
            return true;
        }
        catch
        {
            return false;
        }

1 个答案:

答案 0 :(得分:1)

检查FileIOPermissionAcces.PathDiscovery & FileIOPermissionAccess.Read & FileIOPermissionAccess.Write - 您的访问权限可能会被阻止,因为您甚至无权阅读。

如果这没有帮助,你可以使用单个"虚拟写入"包裹在try - catch中,以确保您可以写。如果您没有删除权限,则可能无法删除虚拟写入文件。

这也可能对您有所帮助:how-can-you-easily-check-if-access-is-denied-for-a-file-in-net(SO-类似问题的答案)