Я работаю в своем собственном PDF Reader с использованием библиотеки C# & Patagames / PDFium, и я могу открывать файлы с помощью "OpenFileDialog" и показывать их на экране. Тем не менее, из-за требований босса мне не разрешено иметь какие-либо кнопки на экране. Все, что нам нужно, - это щелкнуть любой файл .PDF (например, по этому маршруту: C: \ Users \ Adaptabilidad \ Desktop \ Test.pdf) и запустить его и показать документ PDF напрямую, не ища каталог файл. Я установил «.exe» в качестве приложения по умолчанию, хотя программа чтения PDF-файлов не выполняется, файл PDF не отображается.
Я пробовал Application.ExecutablePath, Application.StartUpPath после инициализации компонента, и я ' я все еще получаю маршрут моего исполняемого файла для чтения PDF (.Exe), но мне нужно знать, какой файл должен быть открыт (filepath).
Как я могу получить информацию о файле .pdf (каталог может меняются) что запускает мое приложение? Вы можете увидеть мой код ниже, если поможет.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Patagames;
using System.IO;
namespace aPDF
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "PDF Files (*.pdf)|*.pdf";
if (dialog.ShowDialog() == DialogResult.OK)
{
openfile(dialog.FileName);
}
}
public void openfile(string filepath)
{
byte[] bytes = System.IO.File.ReadAllBytes(filepath);
var stream = new MemoryStream(bytes);
Patagames.Pdf.Net.PdfDocument pdfDocument = Patagames.Pdf.Net.PdfDocument.Load(stream);
pdfViewer1.Document = pdfDocument;
}
}
}
Обновления:
Я нашел способ. Один из вас, ребята, который прокомментировал, позволил мне выяснить, как это сделать.
Я использовал следующее предложение в моем Program.cs:
public static string[] cmdLine = Environment.GetCommandLineArgs();
public static string cmd = cmdLine[1];
Затем, y используйте "cmd "как путь к файлу.
Почему? Environment.GetCommandLineArgs (); возвращает 2 значения: исполняемый .exe (ваша программа) и в качестве второго значения файл, который вы использовали для запуска этого .exe.
Вот и все. Спасибо за ваши ответы.