我在C#程序中这样做:
File.copy(Application.StartupPath + "\Test.txt",@"c:\Test.txt");
但是我收到了这个错误:
Access to the path 'c\Test.txt' is denied
仅在Windows 7中发生,在Windows XP中它运行良好。
答案 0 :(得分:10)
访问被拒绝。这意味着您无权访问。不,真的,确实如此。
默认情况下,Windows 7中的用户帐户是有限的(非管理员),因此您的程序不能只在系统上的任何位置写入(这是Good Thing(TM))。尝试将Test.txt
放在另一个目录中,例如临时目录(询问系统的位置)。
答案 1 :(得分:2)
Win 7阻止系统驱动器上的根文件夹... 将文件放在您有权复制的位置。
答案 2 :(得分:2)
除了其他人所说的尝试使用Special Folders。并学习一点Making Your Application UAC Aware
答案 3 :(得分:1)
Windows 7 不允许访问程序文件夹和根文件夹。 您可以授予目录编写者访问权限或将目标路径更改为一个用户文件夹,如“我的文档”或应用程序目录。
您可以使用Environment.GetFolderPath();
来放弃此路径示例强>
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 重新发布:“C:\ Users \ Admin \ AppData \ Roaming”
答案 4 :(得分:1)
最好加入档案& Path.Join的路径
File.copy(Path.Join(Application.StartupPath, "\Test.txt"), @"c:\Test.txt");