【发布时间】:2019-04-30 10:41:12
【问题描述】:
在我的 C# 表单应用程序中,我尝试将数据下载到我的 SFTP 服务器的目录中。数据应存储在我要在“MyDocuments”中创建的文件夹中。创建文件夹时,我收到 Renci 错误“失败”,因为该文件夹是“只读”。
我尝试了很多方法来创建文件夹,但在我使用的大多数方法中,要么出现错误,即我没有创建文件夹的权限,要么得到了一个空文件而不是文件夹。现在我有一个文件夹,但不幸的是它是只读的。
String localPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\MyNewFolder\\";
if (Directory.Exists(localPath))
{
Console.WriteLine("Folder already exists");
}
if (!Directory.Exists(localPath))
{
Directory.CreateDirectory(localPath);
DirectoryInfo directory = new DirectoryInfo(localPath);
DirectorySecurity security = directory.GetAccessControl();
}
我希望该文件夹不是只读的,以便我可以使用我的程序保护其中的数据。任何人都知道为什么我的代码仍然创建一个只读的?
【问题讨论】:
-
在客户端上使用窗口资源管理器并手动尝试从客户端将文本文件添加到网络文件夹。 Windows 凭据可能不允许您写入该文件夹。使用 Windows 资源管理器将验证您是否有权写入该文件夹。
-
检查
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)没有返回空值或“”。此外,如果该目录已经以只读方式存在,您的代码将不会进行任何更改(显然),因此它将保持只读状态。 -
我总是在启动我的应用程序之前删除该文件夹,所以我知道该文件夹始终是只读的..
-
您可以尝试像在这篇文章中那样明确删除只读:stackoverflow.com/a/2316534/4824531
-
@ThomasN 我已经试过这个了。即使使用该方法,它也会创建一个具有只读属性的文件夹
标签: c# forms winforms directory