访问文件被拒绝

10 c# permissions file-io

我正在使用FTPClient库将文件从Windows共享传输到FTP服务器.

该库的SendFile方法使用以下代码:

FileStream stream = new FileStream(localFileName, FileMode.Open);
Run Code Online (Sandbox Code Playgroud)

这会导致抛出System.UnauthorizedAccessException,但是我可以使用Windows资源管理器在执行代码的同一用户帐户下打开,重命名和移动文件.

谁能告诉我为什么会这样?

编辑:

奇怪的是,我可以访问共享上的其他文件,这些文件已被授予与我无法获得相同的NTFS权限.

这也是一个Windows窗体应用程序.

更新:

仍然没有运气.我能够使用StreamReader文件流而不是文件流来读取文件.我无法理解为什么两者表现不同.

fre*_*tje 28

您确定它是相同的用户帐户吗?你能尝试一下吗?

MessageBox.Show(WindowsIdentity.GetCurrent().Name);
Run Code Online (Sandbox Code Playgroud)

?

此外,您确定该文件不是只读的吗?您是否需要对该文件的写入权限?否则你可以尝试:

FileStream stream = new FileStream(localFileName, FileMode.Open, FileAccess.Read);
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答.我的文件是只读的,但由于我没有请求写访问,我假设定义FileAccess.Read是不需要的.我错了.添加FileAccess.Read是关键. (12认同)

abm*_*bmv 0

1)使用explorer对物理目录的NTFS权限

2) 在 IIS MMC 控制台 FTP 站点内允许读/写 FTP 文件夹

3) 检查上述步骤时,确保FTP站点或虚拟目录确实存在

http://www.eggheadcafe.com/forumarchives/inetserveriisftp/Jan2006/post25322215.asp