如何在fsi和fsharp脚本中请求UAC

时间:2017-07-25 05:10:35

标签: f# f#-interactive f#-scripting

我有一个脚本:

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运行它。
我尝试以管理员身份运行cmdfsi,但要么工作了。
我使用Manifest file找到了fsharp程序中使用的解决方案 但是--win32manifest选项无法在fsi中使用(它是fsc的选项)。
error FS0243: Unrecognized option: '--win32manifest'

是否有任何解决方案可以在脚本中请求UAC? (我知道如何通过替换GetFiles方法来捕获异常来修复上面的脚本)

1 个答案:

答案 0 :(得分:2)

我可以说经过一些不是.FSX问题的研究后,我能够在C#和F#应用程序中复制Visual Studio中的问题。这是类似问题的link。我认为解决方案是使用您拥有完全权限的文件夹(我的文档中的任何内容都是iffy),或者使用this之类的解决方案作为起点。