2012-03-28 7 views
0

私はこれのノブで、誰かを助けることができるかもしれないと思っていました。VB.NET 2010コマンドラインプログラムでは、同じディレクトリにファイルが必要ですか?

cdrdaoという名前のcdコマンドラインプログラムを記録するVisual Basic(VS2010バージョン)のフロントエンドをまとめています。

ここに、win32バージョンのリンクがあります。 http://www.student.tugraz.at/thomas.plank/ そこに掲載されたcdrdaoのバージョンは、2つのdllファイルに依存しています。 cygwin1.dll、およびcyggcc_s-sjlj-1.dllがあります。 bin/debugディレクトリに3つのファイルがあります。

は、ここで私はこれを実行すると、それは文句を言わないstrFileを受け取る私のコード

Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click 
    Dim myfile As String 
    myfile = OpenFileDialog1.ShowDialog() 
    myfile = OpenFileDialog1.FileName 
    lblFile.Text = myfile 
End Sub 

Private Sub btnBurn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBurn.Click 
    Dim strFile As String 
    Dim p As New Process 
    strFile = lblFile.Text 
    p.StartInfo.FileName = "cdrdao.exe" 
    p.StartInfo.Arguments = " simulate " + strFile 
    p.Start() 
    MessageBox.Show(p.StartInfo.Arguments.ToString(), "result") 

End Sub 

です。 strFileはimage.cueです

それは私のメッセージボックスに表示されますが、それは動作しません。

私のstrFile(イメージファイル)が私のexeと同じディレクトリにあり、cdrdaoがbin/debugにあり、これらの引数を設定して、btnBurnをクリックします。

p.StartInfo.Arguments = " simulate " + "myimage.cue" 

次に、期待どおりに動作します。

ここでは、コマンドプロンプトを起動したときに動作するシナリオを示します。

デスクトップにtestという名前のフォルダがあり、cdrdaoとdllが含まれています。 私はG:ドライブにtestと呼ばれるフォルダを持っていて、それには書き込むイメージファイルが含まれています。

これをcmdに入力します。

cd /d G:\test 
C:\Users\myname\Desktop\test\cdrdao simulate G:\test\myimage.cue 

これも機能します。

誰かがこの作業をどのように行うことができるかについての手掛かりがありますか?それはディレクトリの問題ですか?どんな援助も大いに訴えられるでしょう。

+0

しかし、これは明らかにフォルダの問題であることを私たちに伝えています。pは、(デフォルトのフォルダに明示的に指定されていない限り)物事のパスを知る必要があります。 – gbianchi

+0

@ gbianchi素早く応答してくれてありがとう。そのような騒ぎのために申し訳ありません。あなたは私に例を教えていただけますか? – Wyatt

答えて

0
p.StartInfo.FileName = "cdrdao.exe" 

プログラムへのパスを含める必要があります。

strFileにはパスも含める必要があります。

+0

@ gbianchi strFileはメッセージボックスの正しいパスを示しています。これを試しました:p.StartInfo.FileName = "C:\ Users \ Wyatt \ Desktop \ cdrdao \ WindowsApplication1 \ bin \ Debug \ cdrdao.exe"それを理解する。 – Wyatt

+0

ファイルの権限は何ですか?アプリには、それを読み取ったり実行したりするのに十分な権限がない場合があります。 – em3ricasforsale

+0

strFileは、アプリケーションと同じディレクトリにありますが、別の場所では動作しません。 – Wyatt