作者cfcfyoung (CoX的大老虎)
看板C_Sharp
标题[问题] Process与Unicode
时间Sun Apr 22 15:20:31 2012
各位版友好,
小弟最近在写一只压缩程式,主要是递回处理各资料夹内的档案压缩,
不过压到一半发现有些目录的压缩档并未正常的产生,
後来发现是档名有unicode的问题,
不过小弟直接将argu内的参数整串在cmd中执行是正常的,
想请问是否有办法留下执行时的视窗,或者有其他能debug的建议。
PS:小弟也试过Process.RedirectStandardOutput()的方法,
不过log档内只有出现winRar的讯息,
没有加入压缩档的讯息。
Process 呼叫 winrar 程式段如下:
ProcessStartInfo psi =
new ProcessStartInfo(@"c:\program files\winrar\rar.exe");
string argu = @"a -m0 -rr5% ";
string rarName = "畑"; //目前测到这个字有问题
argu += "\"..\\" + rarName + ".rar\""; //将rar档放到上一层目录中
psi.Arguments =
Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(argu));
//这边试过各种Encoding都无效
Process p = new Process();
p.StartInfo = psi;
try
{
p.Start();
p.WaitForExit();
p.Close();
}
catch (Exception ex) //没有exception跳出
{
MessageBox.Show(ex.Message);
throw;
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.162.188.19
1F:→ iterator:rar.exe 参数似乎只支援系统预设的codepage 04/23 10:13
2F:→ iterator:若你的程式环境允许, 试试看改用winrar.exe 04/23 10:13