我正在使用一个简单的DirectoryInfo
来获取C盘根目录下的所有目录。但是,我在管理员下运行,我得到路径访问被拒绝的错误,下面是我正在运行的代码。如何解决路径访问问题?
DirectoryInfo Dinfo = new DirectoryInfo(@"C:\");
DirectoryInfo[] directories = Dinfo.GetDirectories("*.*", SearchOption.AllDirectories);
答案 0 :(得分:2)
在较新版本的Windows C:\Document and Settings
上是交接点,这是一种文件系统快捷方式。它不是一个普通的目录,这意味着它并不像普通目录那样真正起作用。
如果您在开始 - >运行框中输入C:\Document and Settings
,您也会收到拒绝访问错误,因此该程序并不特定。
但是我对它的工作方式感到有些困惑。我认为交接点是到新位置的透明链接,c:\users
但显然不是。
在查看重复的问题后,我不那么困惑了。联结点确实链接到新位置c:\users
。但是,有一个明确的拒绝acl用于读取连接点以防止任何人使用它来阅读:
C:> cacls“Documents and Settings”C:\ Documents and Settings 每个人:(拒绝)(特殊访问:)
FILE_READ_DATA Everyone:R NT AUTHORITY\SYSTEM:F BUILTIN\Administrators:F
C:>
答案 1 :(得分:1)
如果您以管理员身份运行,可能仍会遇到
答案 2 :(得分:1)
C:\ Document and Settings是一个交接点,另外还有一个交接点 您无法访问放置在C:\ root上的System Volume Information目录。您必须捕获任何安全异常并跳过它以使用您的代码。
答案 3 :(得分:0)
func textFieldDidBeginEditing(textField: UITextField) {
animateViewMoving(true, moveValue: 100)
}
func textFieldDidEndEditing(textField: UITextField) {
animateViewMoving(false, moveValue: 100)
}
func animateViewMoving (up:Bool, moveValue :CGFloat){
var movementDuration:NSTimeInterval = 0.3
var movement:CGFloat = ( up ? -moveValue : moveValue)
UIView.beginAnimations( "animateView", context: nil)
UIView.setAnimationBeginsFromCurrentState(true)
UIView.setAnimationDuration(movementDuration )
self.view.frame = CGRectOffset(self.view.frame, 0, movement)
UIView.commitAnimations()
}