我收到错误:
Access to the path 'C:\Program Files (x86)\MetaTrader FIX\experts\indicators\Awesome.ex4' is denied./n at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
at System.IO.File.Create(String path)
at Iron_loader.Program.Main(String[] args) in C:\Users\Damian\Documents\Visual Studio 2010\Projects\Iron loader\Iron loader\Program.cs:line 55
当我从\ bin \ Debug运行我的exe文件时。 我不知道为什么会这样。在目标目录中没有这样的文件,所以我认为安全性存在问题,因为当我从VS运行我的程序时,管理员一切正常。
我正在尝试将文件上传到其他程序的文件夹(不是我的)。 我该如何复制该文件?
File.Create(newPath);
File.Copy(pathOfFileFromMyDebugDirectory, newPath);
答案 0 :(得分:2)
检查文件夹的权限。用户没有修改/完全控制权限。
选择文件夹中的属性,然后选择“安全”选项卡,并检查当前用户或应用程序用户的权限。正在运行。
答案 1 :(得分:2)
如果操作系统和WindowsXP一样,环氧树脂不会在C:\ ProgramFilesx86中读写,因为uac。
您必须以管理员权限启动应用程序。
问候。
答案 2 :(得分:1)
...请参阅下面的修改
我认为问题的一部分是“进程”尚未释放文件句柄。试试这个:
using (Stream stream = File.Create(newPath))
{}
File.Copy(pathOfFileFromMyDebugDirectory, newPath);
一旦你点击了使用块中的右括号,就会调用基本流Dispose()
方法,并且所有资源 - 包括进程'文件句柄 - 都应该被释放。
修改强>
你在'File.Create'电话中得到了例外吗?我误读了你给出的错误。如果您在Create()方法中获得异常,则需要确保正确到写到路径。
我相信,当您纠正权利问题时,可能会获得另一个进程正在使用该句柄的异常。如果是这样,请使用我上面的建议进行修复。