如何在monodevelop gtk#中打开文件位置或打开文件夹位置?

时间:2014-03-25 14:24:45

标签: c# monodevelop gtk#

我想在monodevelop上打开位置文件并在mac,ubuntu上的资源管理器中选择文件。 这段代码适用于windows(不适用于mac和ubuntu):

System.Diagnostics.Process.Start("explorer.exe", "/select, " + fileaddress);

4 个答案:

答案 0 :(得分:2)

Dim dir_path As String = "/media/os/test"
' Windows path example: dir_path = "C:\test"

Process.Start("file://" & dir_path)

在Ubuntu和Windows XP上测试并使用过。

来源:http://www.stevenbrown.ca/blog/archives/156

答案 1 :(得分:0)

使用Process.Start()绕过.NET框架并进入您正在运行的平台,执行任意进程。

在Windows上,您要打开Windows资源管理器,在Mac上打开Finder,在Ubuntu上打开简称为文件浏览器。

框架中没有Environment.OpenFileBrowser(string path)方法,因此必须让您的程序确定它在哪个平台上运行,并打开批准文件查看器。

请参阅How to check the OS version at runtime e.g. windows or linux without using a conditional compilation statement执行前者。

答案 2 :(得分:0)

这篇文章有点陈旧,但希望这会有所帮助。

  1. 您正在调用特定于操作系统(WinBlows)的方法。那不能成为crossPlatform。

  2. 在函数/方法中尝试以下内容:

    示例 - 内部点击事件:

    protected void OnOpen (object sender, EventArgs e) 
        {
          using(FileChooserDialog chooser = new FileChooserDialog (null,"Select document to open...",
            null, FileChooserAction.Open, "Open Selected File", ResponseType.Accept,
            "Discard & Return to Main Page", ResponseType.Cancel)) {
    
                if (chooser.Run () == (int)ResponseType.Accept) {
    
                  System.IO.StreamReader file = System.IO.File.OpenText (chooser.Filename);
    
    /*Copy the contents to editableTxtView   <- This is the Widget Name */
                editableTxtView.Buffer.Text = file.ReadToEnd ();
    
    /* If you want to read the file into explorer, thunar, notepad, etc, 
     * you'll have to research that yourself  */
    
     //Close file - - KEEP IT CLEAN - - & deAllocated memory!!
                file.Close ();
           }
    
         }
     }
    

    该文件现已被复制到可编辑的(默认) 或只读(在属性垫中设置)textviewer Gtk Widget。 从那里你应该能够像你选择的那样操纵它。

答案 3 :(得分:0)

您可以使用&#39; 打开&#39;在Mac上,像这样

System.Diagnostics.Process.Start("open", $"-R \"{File_Path_You_Wanna_Select}\"");

这里-R表示显示,在Finder中选择而不是打开。 要查找打开的更多用法,只需在终端中输入打开即可。