C# 用合适的程序打开文件

C# 用合适的程序打开文件,c#,file,bytearray,C#,File,Bytearray,我想创建一个方法,从DB中获取2个参数 openFile(byte[] fileInfo,string extension) 然后当我调用这个方法时,它可以选择合适的程序打开它 e、 如果我把它叫做 openfile(fileInfo,"docx") 它会自动选择word打开byte[],对于excel、acces和其他扩展名,它也会自动选择word。您需要先将文件保存在磁盘上,然后尝试运行它: File.WriteAllBytes("foo.doc", fileInfo); Process

我想创建一个方法,从DB中获取2个参数

openFile(byte[] fileInfo,string extension)
然后当我调用这个方法时,它可以选择合适的程序打开它

e、 如果我把它叫做

openfile(fileInfo,"docx")

它会自动选择word打开byte[],对于excel、acces和其他扩展名,它也会自动选择word。您需要先将文件保存在磁盘上,然后尝试运行它:

File.WriteAllBytes("foo.doc", fileInfo);
Process.Start("foo.doc");

您需要先将文件保存在磁盘上,然后尝试运行它:

File.WriteAllBytes("foo.doc", fileInfo);
Process.Start("foo.doc");
您需要:

  • 使用通用名称和设置扩展名保存文件
  • 调用,系统将解析关联
  • 您需要:

  • 使用通用名称和设置扩展名保存文件
  • 调用,系统将解析关联

  • 通过将文件作为进程启动,可以让windows shell打开关联的编辑器

    Process.Start("example.txt");
    
    这将打开记事本,例如,如果它是关联的编辑器


    您可以将fileInfo缓冲区流式传输到具有指定扩展名的临时文件中,然后执行一个进程。启动(此处为YourFileName)以启动它。

    您可以通过将文件作为进程启动,让windows shell打开关联的编辑器

    Process.Start("example.txt");
    
    这将打开记事本,例如,如果它是关联的编辑器


    您可以将fileInfo缓冲区以指定的扩展名流式传输到一个临时文件中,然后执行一个Process.Start(此处为YourFileName)来启动它。

    正如其他人所说,使用Process.Start(),我总是这样做,以显示一个open with对话框,就像系统在文件未关联时所做的那样:

    Try
    {
      Process.Start(youfile);
    }
    Catch (Exception e)
    {
      OpenWith(youfile)//you need to implement this by yourself
    }
    

    例如:

    正如其他人已经说过的,使用Process.Start(),我总是这样做,以显示一个打开与对话框,就像系统在文件未关联时所做的那样:

    Try
    {
      Process.Start(youfile);
    }
    Catch (Exception e)
    {
      OpenWith(youfile)//you need to implement this by yourself
    }
    

    例如:

    您是要打开与操作系统中关联的应用程序的文件,还是要打开与您选择的其他应用程序的文件?文件信息字节[]还包含哪些文件数据?文件系统上文件的路径?还有别的吗?@Etienne:方法中的代码是什么:)@MrEyes:我想按与OSA关联的应用程序打开它您想用操作系统中关联的应用程序或您选择的其他应用程序打开文件吗?文件信息字节[]还包含哪些文件数据?文件系统上文件的路径?还有什么?@Etienne:方法中的代码是什么:)@MrEyes:我想通过与OSso关联的应用程序打开它如果不保存附件,就无法打开它:(这将取决于文件类型以及与其关联的程序是否支持此操作。在一般情况下,这是不可能做到的。还需要一个命名空间:System.Diagnostics.Process.Start(“foo.doc”),因此在不保存附件的情况下无法打开附件:(这将取决于文件类型以及与其关联的程序是否支持此操作。在一般情况下不可能这样做。还需要一个命名空间:System.Diagnostics.Process.Start(“foo.doc”)