我在打印文件时遇到问题,我正在尝试创建一个文件,打印并删除它..这是我在C#中的代码
try
{
byte[] bytes = Convert.FromBase64String(content);
File.WriteAllBytes(path, bytes);
this.debug(adobePath);
this.debug(path);
var isLocked = true;
/*while (isLocked)
{
try{
File.ReadAllBytes(path);
isLocked = false;
this.debug("FILE IS FREED");
}
catch(Exception)
{
this.debug("SLEEP");
Thread.Sleep(50);
}
}*/
Process process = new Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = adobePath;
process.StartInfo.Arguments = string.Format("/t {0} \"{1}\"", path, printerName);
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
// Stops here without printing the file
process.Start();
process.WaitForExit();
if (!process.HasExited)
{
process.WaitForInputIdle();
process.CloseMainWindow();
process.Kill();
}
this.debug("FINISH");
}
catch (Exception ex)
{
this.debug(ex.Message);
}
if (File.Exists(path))
{
File.Delete(path);
}
所以问题是我无法打印文件.. 当我尝试没有两个第一行(创建文件)的代码时,基本上我用现有文件尝试这个代码,它工作,我打印出来的文件。 我认为问题可能来自 WriteAllBytes(),但它会创建文件并写入文件然后关闭它,因此文件不再被锁定..所以我不确定从哪里来来了问题! 有任何想法吗?