none
C# Windows Form 檔案關聯 RRS feed

  • 問題

  • 您好,我目前使用Visual Studio 2013開發一支Windows Form應用程式。我自訂了副檔名與我的程式作檔案關聯,但是現在遇到問題,我無法取得檔案開啟時的路徑名稱。從CommandLineArgs取得的參數是執行檔路徑名稱,但是我需要的是原始檔案的路徑名稱,而非它所關聯到的執行檔。以Office Word舉例,例如我開啟test.docx,我要取得test.docx這個檔案的路徑名稱,不是word本身執行檔的路徑名稱。請問可以如何取得?
    2015年7月20日 上午 03:30

解答

  • 使用 Windows Installer 設定檔案關聯時,當你的程式被執行,預設會是這樣格式:

    X:\Path\program.exe "x:\path\test.xxx"

    所以 tihs 要你抓 command line

    command(0) 是 X:\Path\program.exe

    command(1) 是 "x:\path\test.xxx"


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年7月21日 下午 03:54

所有回覆

  • 您可以在程式中這樣做:

    string[] args = System.Environment.GetCommandLineArgs();
    if(args.Length == 1)
    {
        
    if(System.IO.File.Exists(args[0])
       
    {
           
    string filePath = args[0];    //包含路徑的檔案名稱
        
    }
    }

    2015年7月20日 上午 07:19
  • 沒有路徑的,抓工作路徑。

    有路徑的... 應該不必問。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年7月20日 下午 01:01
  • 我已經使用過這個方法,這是取得.exe執行檔包含路徑的檔案名稱。但無法取得關聯的包含路徑的檔案名稱。例如我的程式執行檔是program.exe,然後我建立一個檔案test.xxx並且設定副檔名的檔案關聯以program.exe開啟,我需要取得test.xxx包含路徑的檔案名稱。
    2015年7月21日 上午 06:19
  • 使用 Windows Installer 設定檔案關聯時,當你的程式被執行,預設會是這樣格式:

    X:\Path\program.exe "x:\path\test.xxx"

    所以 tihs 要你抓 command line

    command(0) 是 X:\Path\program.exe

    command(1) 是 "x:\path\test.xxx"


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2015年7月21日 下午 03:54