2

誰かが私のソリューションを起動できるようにして、プログラムでそれを実行して、たとえば、この csv をプロジェクトのルートに配置して、この csv ファイルを読み取るメソッドでそれを取得できるようにしたいと考えています。

File.ReadLines(filePath).Select(a => a.Split(';'));

問題は、誰かが私のソリューションを C ドライブにコピーした場合、このファイルパスがどのように見えるかを確認する方法がわからないことです..このソリューションを起動し、コンソール アプリを実行し、このファイルからすでに私のプロジェクトと同じディレクトリにあります。基本的に定数を介してファイル名をハードコードしたいだけで、OKについて心配する必要はありません。このファイルはどこにありますか..テスト目的でコピーした後は常にここにあります。

では、.net プロジェクトに .csv を含めてから、定数「filename.csv」を作成する必要があります。私はそれを試しましたが、うまくいきません。

私は失敗するこれで終わります:

 File.ReadLines("someFile.csv").Select(a => a.Split(';'));

そのファイルをプロジェクトに含めました...プログラムが実行されているメインコンソールプロジェクトです。

ここに私のソリューション構造があります

SomeTest (.NET solution and it's the root solution folder)
    SomeTest (console project)
       Constants.cs
    SomeTest.BL
    SomeTest.DL
       filename.csv

テスト データ ソースとして使用しているため、実際の csv を DL に移動しました。

だから、彼らが私の SomeTest ソリューション フォルダーを C ドライブにコピーするとき、どこに置いても、その定数を読んC:\\root path to wherever they copied SomeTest folder to\\SomeTest.DL\\filename.csv で意味を理解する必要がありますか? ルート パスの後に SomeTest.DL をハード コードする必要がありますが、ルート パスを取得できません。私の場合は C:\www で、その部分を取得してから、たとえば \SomeTest.DL を追加します。 \filename.csv" という文字列をそれに追加します。

4

1 に答える 1

3

BuildAction最も安全なオプションは、csv ファイルをプロジェクトに追加し、そのファイルを [なし] に設定Copy To Output Directoryして [コピー] に設定することだと思います。

ここに画像の説明を入力

その後、ユーザーはいつでも を使用してアクセスできますFile.ReadLines("MyDataCsv.csv")。また、Visual Studio IDE から csv を表示/編集することもできます。これは、他のプログラマーが必要とするものだと思います。

于 2013-01-11T04:11:34.997 に答える