我有一个脚本:
open System
open System.IO
let fileSize path =
try
Some((new FileInfo(path)).Length)
with
| e ->
printfn "%A" e
None
let dirSize dir =
Directory.GetFiles(dir,"*",SearchOption.AllDirectories)
|> Array.map fileSize
|> Array.map (Option.defaultValue 0L)
|> Array.reduce (+)
dirSize """C:\Users\xxx\Documents""";;
我得到System.UnauthorizedAccessException
运行它。
我尝试以管理员身份运行cmd
或fsi
,但要么工作了。
我使用Manifest file
找到了fsharp程序中使用的解决方案
但是--win32manifest
选项无法在fsi中使用(它是fsc
的选项)。
error FS0243: Unrecognized option: '--win32manifest'
。
是否有任何解决方案可以在脚本中请求UAC?
(我知道如何通过替换GetFiles
方法来捕获异常来修复上面的脚本)