我正在尝试自动化SVN中的一些东西,其中一部分是将.svn文件(包含目录应该更新其文件的位置)复制到本地驱动器。
我正在使用以下代码:
File.Copy(@"X:\SVN\.svn", @"C:\SVN\.svn, true");
我收到以下错误:
Access to the path 'X:\SVN\.svn' is denied
我是不是只允许移动这些类型的文件?我知道默认情况下它们是隐藏的,所以也许这就是正在发生的事情。或者在C#中有一种方法,我可以创建一个新的.svn文件,这样我就不必费心去做权限了吗?
谢谢!
答案 0 :(得分:4)
上次检查时,.svn
是一个目录。您可能无法使用File.Copy复制目录,或者该目录正在使用中(共享锁定)。
查看ProcessExplorer的查找功能(在Sysinternal Suite中),找出哪个进程使用它(也许是TortoiseSVN?)
也许使用Rich Copy来安排您的复制,这是一个来自Microsoft的RoboCopy克隆,它将复制权限,增量更新等。
答案 1 :(得分:1)
通常这是因为您已经运行了龟,并且龟缓存已锁定文件。如果你在任务管理器中将其关闭,你可以用点击做任何你想做的事。
那说,复制它的目的是什么?你在克隆这个项目吗?答案 2 :(得分:0)
如果您使用的是Windows并使用TortoiseSVN,则.svn实际上是一个目录,因此您无法在其上使用File.Copy。