絶対パスを使用してファイルの場所を識別するC#コードがあります。コードをデバッグするとき、パスは引き続き絶対的です(Console.WriteLineを使用して確認します)。 Windowsタスクスケジューラからコードを起動すると(その起動時)、パスは相対パスとして表示されます(Console.WriteLineによって確認済み)。しかし、コードを直接実行しようとすると(exeファイルをコンパイルしたり、タスクスケジューラから起動した場合)、パスは絶対パスとして再度表示されます!ここでC#コードスケジュールされたタスク中の絶対パスから相対パスへの切り替え
は、私はパスを呼び出す方法は次のとおりです。
string path = Directory.GetCurrentDirectory();
string strSCPath = path + @"\Scorecards";
string filePath = strSCPath + @"\" + file + ".txt";
そして、どのように私は、相対/絶対的な条件を確認します。
Console.WriteLine("Filepath defined as: {0}", filePath");
そして私は、タスクスケジューラを使用して実行します。
Filepath defined as .\Scorecards\file.txt
しかし、手動で実行:
Filepath defined as D:\Users\Files\Scorecards\file.txt
私のコードまたはタスクスケジューラ自体に設定がありますが、上記の条件の原因になるのは正しく設定されていませんか?
[mcve]を入力してください。 [ask]もご覧ください。 – Igor
"私はC#コードをいくつか持っています"。あなたは本当にこの質問のコードを共有する必要があります... – spender
*カレントディレクトリ*から起動している場合は、起動時のカレントディレクトリ*が正しく設定されていることを確認してください。 –