0

在下面的代码中,控制台提示用户输入 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);
4

0 回答 0