プロセスは2つの文字列から始まります
-
28-10-2019 - |
質問
ユーザーが設定できるファイルを開こうとしています。言い換えれば、それは決して設定されたパスやファイルになることはありません。したがって、ユーザーがファイルを選択した場合、以下のこのボタンを開くと開きます。私はL1とP1をパブリック文字列として宣言しました。
public void button4_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
l1 = Path.GetFileName(openFileDialog1.FileName);
p1 = System.IO.Path.GetDirectoryName(openFileDialog1.FileName);
}
public void button2_Click(object sender, EventArgs e)
{
//p1 = directory path for example "C:\\documents and settings\documents"
//l1 = filename
Process.Start(p1+l1);
}
したがって、レビューするために、ディレクトリパスとファイル名を使用してファイルを開きたいと思います。これは可能ですか?私はそこにp1を持つことができ、それは私にそのディレクトリを示す探検家を開きます。見てくれてありがとう。
解決
はい、それは機能しますが、代わりにこれをコード更新することをお勧めします:
var path = Path.Combine(p1, l1);
Process.Start(path);
他のヒント
文字列連結を使用してディレクトリとファイル名を組み合わせるべきではありません。あなたの場合、結果の文字列は次のようになります:
C:\documents and settings\documentsfilename
^^
this is wrong
代わりに使用します Path.Combine
.
string path = Path.Combine(p1, l1);
Process.Start(path);
単にこれをしてみませんか: -
public void button4_Click(object sender, EventArgs e)
{
string fileNameWithPath;
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
{
fileNameWithPath = openFileDialog1.FileName;
}
}
public void button2_Click(object sender, EventArgs e)
{
Process.Start(fileNameWithPath);
}
所属していません StackOverflow