在下面的代码中,控制台提示用户输入 2 个文件(当前位于联网位置)。然后它将这些文件复制到本地驱动器以更快地阅读 PDF,但我遇到了问题。如果我将最后一行代码引用为 PdfDocument pdf = new PdfDocument("C:\somepdf.pdf"); 该文件的访问速度非常快。
但是,对于当前的复制过程,出于某种原因,仅此行代码就需要 18-20 分钟以上的时间来处理。我假设这是因为最近复制的文件仍然被锁定在一个进程下,即使实际的复制过程不到 10 秒。
在我的研究中,我看到了识别锁定文件并杀死它的进程的各种方法,但这似乎不适用于我正在尝试做的事情。
不幸的是,我已经到了不得不寻求帮助的地步。我在这里忽略了什么吗?我不明白为什么处理本地引用的 pdf 比先在本地复制过程处理的 pdf 少 15 分钟。
想法?
string selectFileNameO;
string selectFileNameF;
string FileNameO;
string FileNameF;
using (OpenFileDialog dialog = new OpenFileDialog())
{
dialog.Title = "Choose File";
dialog.FileName = "";
dialog.ShowDialog();
selectFileNameO = dialog.FileName;
}
string ext = System.IO.Path.GetExtension(selectFileNameO);
selectFileNameF = Path.GetFileName(selectFileNameO);
selectFileNameF = selectFileNameF.Substring(0, selectFileNameF.Length - ext.Length);
selectFileNameF = "C:\\" + selectFileNameF + ".ext";
Console.WriteLine(selectFileNameF);
using (OpenFileDialog dialog2 = new OpenFileDialog())
{
dialog2.Title = "Choose 2 File";
dialog2.FileName = "";
dialog2.ShowDialog();
FileNameO = dialog2.FileName;
}
string ext1 = System.IO.Path.GetExtension(FileNameO);
FileNameF = Path.GetFileName(FileNameO);
FileNameF = FileNameF.Substring(0, FileNameF.Length - ext1.Length);
FileNameF = "C:\\" + FileNameF + ".ext";
File.Copy(FileNameO, FileNameF, true);
int distanceToString = 535;
int lengthOfString = 6;
string myDataSet;
using (StreamReader sr = new StreamReader(selectFileNameF))
{
while (!sr.EndOfStream)
{
string line = sr.ReadLine();
myDataSet = line.Substring(distanceToString, lengthOfString);
selectFileUIDs.Add(myDataSet);
Console.WriteLine(myDataSet);
}
sr.Dispose();
}
Console.WriteLine(FileNameF);
PdfDocument pdf = new PdfDocument(FileNameF);