"l"コマンドを使用してzipアーカイブをチェックしてから "e"コマンドを使用して抽出するC#プログラムがあります。7-Zip 7zaコマンドラインで指定されたファイルが見つかりません
私は自分のデスクトップからプログラムを実行することができますが、それは素晴らしいですが、サーバー上で直接実行すると次のような例外があります。「システムはできません指定されたファイルを見つけてください "。ファイルのパスが正しいことを確認して、7za.exeに渡しています。私はプロジェクトに埋め込みリソースとして7za.exeを添付していますが、ファイルが見つからない理由はわかりません。何か案は?ありがとう!
私がzipアーカイブを開くことができることを確認しなければならないコードはここにあります.Iを除いて解凍するのはほとんど同じです。
Process l = new Process();
l.StartInfo.FileName = "7za.exe";
l.StartInfo.Arguments = "l " + filePath[i];
l.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
l.EnableRaisingEvents = true;
l.StartInfo.UseShellExecute = false;
l.StartInfo.RedirectStandardOutput = true;
l.Start(); // This is were it throuws the exception because it can't find the file.
// Do stuff to verify zip archive is not corrupt
l.WaitForExit();
例:filePathには、[I] = C:\ユーザーは、 "埋め込まれたリソースは、" 唯一の.NETリソースAPIを使用することができますデスクトップ\ ZipFile.zip
おそらく '7za.exe'を見つけることができません – manojlds
私はもともと思っていたものの、それはファイルの意味を見つけることができないと信じています7za.exe – buzzzzjay
@buzzzzjay:manojldsは正しいです。例外が発生した場合、 '7za.exe'が見つかりませんでしたので、プログラムの起動に失敗しました。 '7za.exe'が正常に起動した場合は、stdout(リダイレクトしたもの)やstderr(あなたが持っていないもの)にエラーメッセージが出ますが、例外はありません。 –