在下面的代码中,控制台会提示用户输入2个文件(当前位于联网位置)。然后它将这些文件复制到本地驱动器以便更快地读取PDF,但我遇到了问题。如果我引用最后一行代码为PdfDocument pdf = new PdfDocument(“C:\ somepdf.pdf”);文件访问速度非常快。
但是,对于当前的复制过程,出于某种原因,这行代码单独处理需要18-20分钟。我假设这是因为最近复制的文件仍然在进程中被锁定,即使实际的复制过程只需不到10秒。
在我的研究中,我已经看到了各种方法来识别锁定文件并将其删除的过程,但这似乎并不适用于我正在尝试做的事情。
不幸的是,我到了必须寻求帮助的地步。我在这里俯瞰什么吗?我不明白为什么处理本地引用的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);