F # Интерактивная разработка DirectoryNotFoundException: Не удалось найти часть пути 'C: \ Users \ Bob \ AppData \ Local \ Temp \ MyFolder \' - PullRequest
1 голос
/ 13 апреля 2011

При использовании интерактивной F # эта строка кода будет искать по пути, указанному в строке темы.

let files = Directory.GetFiles("MyFolderPath")

Есть ли способ установить интерактив для поиска в той же папке, в которой работает текущий файл fsxот?Или какой-нибудь способ контролировать это поведение вообще?Я привык к поиску, начинающемуся в bin \ Debug, очевидно, и такое поведение меня отбрасывает.

Заранее спасибо,

Боб

Ответы [ 2 ]

3 голосов
/ 13 апреля 2011

Зависит от того, где запущен процесс fsi.exe.Fsi отделен от IDE, он не знает, какой файл открыт.При запуске Visual Studio текущим каталогом для fsi является папка temp.

Если вы запустите файл fsx (fsi foo.fsx или щелкните правой кнопкой мыши «Run with F # Interactive»), fsi будет запущена из текущего каталога.

Чтобы увидеть, где вы находитесь (в каком каталоге), вы можете сделать:

Directory.GetCurrentDirectory()

Чтобы изменить каталог, используйте эту команду:

Directory.SetCurrentDirectory(...)
0 голосов
/ 13 апреля 2011

Интерактивный F # полностью не зависит от текущей программы F # (на самом деле, думайте, что он работает в отдельной оболочке CMD).Поэтому я боюсь, что не будет простого способа получить текущий открытый файл .fsx.

Возможно, вы сможете извлечь что-то из fsi.CommandLineArgs, но у меня нет VS, чтобы подтвердить это.

...