Получить путь к файлу, который запустил мое приложение - PullRequest
0 голосов
/ 15 января 2020

Я работаю в своем собственном 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.

Вот и все. Спасибо за ваши ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...