C# - 将文件复制到新位置,然后读入PDF(带代码)

时间:2013-05-20 20:21:48

标签: c# pdf

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

0 个答案:

没有答案