2017-09-20 9 views
2

私は、デスクトップの「新規フォルダ」にある次のファイルがあります。F#FSI、作業ディレクトリーを変更し

// File location: "C:\Users\my_user_name\Desktop\New folder\AddOne.fs" 
// 
module internal AddOneModule 

let AddOneFunction x = x + 1 

を私はFSI F#インタラクティブを使用して完全なパス名に#loadを使用してこのファイルにアクセスすることができます。

Microsoft (R) F# Interactive version 4.1 
Copyright (c) Microsoft Corporation. All Rights Reserved. 

For help type #help;; 

> #load "C:\Users\my_user_name\Desktop\New folder\AddOne.fs";; 
//[Loading C:\Users\my_user_name\Desktop\New folder\AddOne.fs] 
//namespace FSI_0002 
// val AddOneFunction : x:int -> int 

> open AddOneModule;; 
> AddOneFunction 100;; 
// val it : int = 101 

相対パスを使用してファイルにアクセスできるように作業ディレクトリを変更するにはどうすればよいですか?

F# interactive:how to display/change current working directory

私は上記のポストに似た何かを試してみましたが、FSIはまだTempフォルダにファイルを見つけようとします:

(FSIをRESET)

Microsoft (R) F# Interactive version 4.1 
Copyright (c) Microsoft Corporation. All Rights Reserved. 

For help type #help;; 

> open System;; 
> Environment.CurrentDirectory <- @"C:\Users\my_user_name\Desktop\New folder";; 
//val it : unit =() 

> #load "AddOne.fs";; 

// #load "AddOne.fs";; 
// ^^^^^^^^^^^^^^^^^ 

//C:\Users\my_user_name\Desktop\New folder\stdin(3,1): error FS0078: Unable to find 
//the file 'AddOne.fs' in any of 
// C:\Users\my_user_name\AppData\Local\Temp 

があなたをありがとう助けて。

+3

私の推薦は決してFSIに直接入力することはありません。スクリプトファイルを作成し、必要に応じてコード行をFSIに送信します。こうすることで、相対パスからファイルをロードすることができます(オートコンプリート、エラー下線付き)。ツールのサポートを完全に受け取り、 ';;'と入力する必要はありません。 – TheQuickBrownFox

答えて

2

作業ディレクトリを変更する代わりに、__SOURCE_DIRECTORY__ built-in identifierでトリックを使用して目的を達成することができます。

まず、ディレクトリ構造内に特定のアンカーポイントが必要です。説明のために、あなたがWindows上にいると仮定して、このアンカーポイントをユーザのディレクトリとしましょう。これは%USERPROFILE%環境変数で定義されています。

#I __SOURCE_DIRECTORY__

基本的にあなたがする必要があるすべてです:コードの以下の1行を含むが、スクリプトanchorfsi.fsxを置きます。コマンドラインfsi --load:%USERPROFILE%\anchorfsi.fsxを使用してどの場所からfsiを撮影しても、スクリプトと対話型コマンドで相対パスを使用できます。入力された相対パス".\desktop\new folder\addone.fs"が正しくいかなるずに絶対1 C:\Users\gene\desktop\new folder\addone.fsにマッピングされたか

demo

お知らせ:ロード.\desktop\new folder\addone.fsであなたの問題のセットアップに目を向けると

、次のスクリーンショットは、希望を達成することを示してい依存ディレクトリfsi作業ディレクトリとなります。

関連する問題