13

私は学校のプロジェクトに取り組んでいるので質問しています。はい、これは宿題です。でも、もう少し理解しようとしています。

聞かれる内容の一例です。

• ユーザーが [保存] ボタンをクリックすると、選択したレコードを txtFilePath (相対パスではなく絶対パス) で指定されたファイルに、現在内部にある値を切り捨てずに書き込みます。

これは私が持っているものです。

private void button2_Click(object sender, EventArgs e)
{
    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
    {
        StreamWriter myWriter = new StreamWriter(saveFileDialog1.FileName);
        myWriter.Write(txtFilePath.Text);
        myWriter.Close();
    }
}

今、私はこれを正しく行っているかどうかわかりません。デスクトップに保存してリストボックスから削除し、再度リロードしようとしても何も表示されません。これは私のフォームにあるものです。

private void button1_Click(object sender, EventArgs e)
{
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        StreamReader myReader = new StreamReader(openFileDialog1.FileName);
        txtFilePath.Text = openFileDialog1.FileName;
        txtFilePath.Text = myReader.ReadToEnd();
        myReader.Close();
    }
}    

そして、これが負荷です。

private void Form1_Load(object sender, EventArgs e)
{
    string[] myFiles = Directory.GetFiles("C:\\");
    foreach (string filename in myFiles)
    {
        FileInfo file = new FileInfo(filename);
        employeeList.Items.Add(file.Name);
    }

    //...

誰かがこれを理解するのを手伝ってくれますか?

4

3 に答える 3

31

ある場所への道順を教えていたとします。場所へのアクセスを説明できる方法は 2 つあります。

  • あなたが立っている場所に対して、
  • ランドマークとの相対。

どちらも同じ場所に到着しますが、前者は常に機能するとは限りません(「左に曲がり、次に右に曲がり、2 つの信号を通過してから別の右に曲がる」は、隣の町からは必ずしも機能しませんが、どこからでも機能します。あなたが立ちます)。それが本質的な違いです。

がある場合C:\Windows\System32、それは絶対パスです。をお持ちの場合は、から開始Windows\System32している場合にのみ機能します。で開始する場合、そこに正しく到達するには が必要です。C:\C:\Program Files..\

ただし、ハード ドライブのどこにいても、C:\Windows\System32\そのフォルダーにアクセスするための確実な方法です。

于 2012-04-23T21:01:39.960 に答える
8

それは実際には単純な区別です。相対ファイル パスは、ルート ノードに基づく構造になります。絶対パスは、あいまいでない場所に基づく構造になります。ややこしいように聞こえるかもしれませんが、実際には非常に単純です。

ここではいくつかの例を示します。

絶対パス

 C:\inetpub\yourapplication\default.aspx
 http://www.yourapplication.com/default.aspx

これらのパスはあいまいではないため、絶対パスです。例 1 は絶対ファイル パスを示し、例 2 は絶対 URL を示します。

相対パス

./../script/something.js
~/default.aspx

相対パスは、既知の先行参照ポイントに基づいて場所を指定します。したがって、例 1 では、1 つのディレクトリに移動し、次に というディレクトリに移動しscript、次に javascript ファイルに移動することがわかっています。例 2 では、アプリケーションのルートに含まれる aspx ページを指定しています。

したがって、特定の問題に密接に関連して、ファイルを特定の絶対パスに書き込む必要があります。つまり、あいまいでない場所である必要があります。

于 2012-04-23T21:04:11.607 に答える
5

絶対パスは、ファイル システム内の場所にアクセスするために必要な完全なパス名です。
例えば: C:\Program Files\Internet Explorer\iexplorer.exe

相対パスは、通常、メインの実行可能ファイルの場所、またはプログラムを開いたときに設定された「開始」場所に関係するランドマークに関連しています。

たとえば、メインの実行可能ファイルが is へC:\Program Files\の相対パスにiexplorer.exeある場合Internet Explorer\iexplorer.exe

これは通常、ファイルがどこにインストールされるか、どのドライブ文字にインストールされるか、またはどのフォルダの下にあるかなど、ファイルが絶対にどこにあるかが常にわからない場合に行われます。

ただし、良い例として、ファイルがプログラムに付属しており、プログラムのインストール構造を知っている場合、プログラムが必要な絶対パスではなく、プログラムがインストールされている場所に関係なく、相対パスを使用してすべてのファイルを見つけることができます。毎回同じ場所に設置。

于 2012-04-23T21:03:10.677 に答える