Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Jack Wade
65 / 38 / 14
Регистрация: 24.02.2013
Сообщений: 250
1

Открыть файл своей программой

18.08.2015, 02:20. Просмотров 1131. Ответов 5
Метки нет (Все метки)

Здравствуйте!
Подскажите пожалуйста, как получить пусть к файлу, через который была открыта программа?

Более подробнее:
К примеру, я кликаю на некий файл(допустим, file1.f) правой кнопкой мышки, там в контекстном меню есть "открыть с помощью", я выбираю свою программу и моя программа должна выполнить открытие этого файла. Как открывать эти файлы-я знаю, мне просто нужно получить путь к этому файлу. Как это можно реализовать?

Добавлено через 19 минут
Забыл добавить-это не консольная программа, по этому, тут нету у меня метода main(String[] args), есть конструктор и методы при нажатии на компоненты.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.08.2015, 02:20
Ответы с готовыми решениями:

Открыть файл программой по умолчанию
Здравствуйте, у меня странный вопрос - как можно организовать открытие файла по нажатию на кнопку...

Открыть графический файл программой по умолчанию
Назрел такой вопрос: а можно как-нибудь из-под консоли вывести на экран(не в консоль) файл типа...

Как открыть файл программой по умолчанию
Всем привет, у меня вопрос следующего характера. Как моему приложению запустить внешненее...

Открыть файл для чтения программой по умолчанию
Process.Start("строка"); работает, но нужно только для чтения открывать File.OpenRead("строка");...

Ассоциация файлов со своей программой
Всем привет. На финальных этапах разработки проги столкнулся с тем, что было бы неплохо...

5
rockandroll
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
18.08.2015, 03:17 2
Лучший ответ Сообщение было отмечено Jack Wade как решение

Решение

например можно выловить аргументы вот так (в wpf приложении у меня так работает точно):

C#
1
2
3
4
5
string[] args = Environment.GetCommandLineArgs();
 foreach (string arg in args)
 {
        //to do
 }
можно еще погуглить на эту тему как всетаки лучше делать. У меня в случае Open With.. моей микропрограммы на wpf
первый аргумент был - это где exe файл находится, а второй как раз послный путь к файлу с именем и расширением.
1
Jack Wade
65 / 38 / 14
Регистрация: 24.02.2013
Сообщений: 250
18.08.2015, 09:30  [ТС] 3
Благо дарю!

К стати говоря, я по ходу раньше "натыкался" на решение данного вопроса, вот только есть одно маленькое НО:
Я то находил рекомендации использовать main(String[] args), но... Никто не указывал, что нужно главный метод в Programm.cs немного дополнить(тобишь, static void main()).
Итого, код должен быть следующим(если не хочется(почему то) использовать Envoriments, ну или же другой вариант):
Код Programm.cs:
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace MyProgramm
{
    static class Program
    {
        /// <summary>
        /// Главная точка входа для приложения.
        /// </summary>
        [STAThread]
        static void Main(String[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1(args));
        }
    }
}

И... вот код самого Form1.cs:
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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;
 
namespace MyProgramm
{
    public partial class Form1 : Form
    {
         public Form1(String[] args)
        {
            InitializeComponent();
            MessageBox.Show(args[0].ToString());
         }
     }
}
}
0
Erato
20 / 8 / 7
Регистрация: 22.10.2012
Сообщений: 77
18.08.2015, 11:30 4
C#
1
2
3
4
5
6
public static void  Loadpath()
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() == DialogResult.OK)
                tbPath.Text = ofd.FileName;
        }
Адрес будет показан в tbPath
0
rockandroll
16 / 16 / 8
Регистрация: 05.08.2015
Сообщений: 79
18.08.2015, 17:50 5
Цитата Сообщение от Jack Wade Посмотреть сообщение
public Form1(String[] args)
* * * * {
помимо передачи в конструктор есть еще такой вариант в wpf. конечно e.Args лучше писать изначально в массив или список:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        public string CustomerArg { get; set; }
        protected override void OnStartup(StartupEventArgs e)
        {
            if (e.Args.Length > 0)
            {
                this.CustomerArg = e.Args[0].ToString();
            }
 
            base.OnStartup(e);                  
        }
    }
C#
1
2
3
4
public MainWindow()
        {
            InitializeComponent();
            var Arg = (Application.Current as App).CustomerArg;
1
Jack Wade
65 / 38 / 14
Регистрация: 24.02.2013
Сообщений: 250
21.08.2015, 21:29  [ТС] 6
Erato, вы немного не поняли задачу...
0
21.08.2015, 21:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2015, 21:29

Как ассоциировать расширение со своим приложением и открыть файл своей программой
На последней стадии реализации своей программы задался вопросом. А как сделать так, что бы при...

Открыть файл с помощью своей программы
Допустим есть .mp3 , вот нажал по ней правой кнопкой мыши , открыть с помощью - вот там, как можно...

Как открыть файл лежащий рядом с программой
Пишу на visual studio 2008 c# для смарт устройства на Win CE 6.0 Как открыть файл лежащий рядом с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru