如何在C#中使用文件的相对路径

时间:2019-02-15 12:14:52

标签: c# relative-path

我正在制作一个可以打开其他程序的启动器。 程序将位于启动器的同一文件夹或子文件夹中。 我不知道它们的完整路径,因为用户可以选择将它们保存在何处。 它可能是C,D,E,D /文件夹/newfoler54/sdfsdfsdf/program.exe等光盘。 显示如何为此目的使用相对路径

2 个答案:

答案 0 :(得分:2)

相对路径是相对于当前工作目录的,不一定是您的启动器的安装目录。

您可以使用:

<script>
    function addChart() {
        chartCount++;
        var name = document.getElementById("chartName").value;
        chartDict[name] = chartCount;
        chart[chartCount] = new CanvasJS.Chart("chartContainer" + chartCount, {
            title: {
                text: name
            },
            axisY: {
                includeZero: false,
                maximum: 70
            },
            axisX: {
                valueFormatString: "hh:mm tt"
            },
            data: [{
                type: "line",
                dataPoints: dps[chartCount]
            }]
        });
        updateChart[chartCount] = function(count) {
            count = count || 1;

            for (var j = 0; j < count; j++) {

                dps[chartCount].push({
                    x: xVal[chartCount],
                    y: yVal[chartCount]
                });
                xVal[chartCount] = new Date()
                //console.log(xVal)
                //xVal++;
            }

            if (dps[chartCount].length > dataLength) {
                dps[chartCount].shift();
            }

            chart[chartCount].render();
        };
        intervals[chartCount] = setInterval(updateChart[chartCount], 1000)

    } 
  </script>

获取相对于包含启动器的目录的路径。

答案 1 :(得分:0)

您的启动器有自己的路径:

var launcherFullName = System.Reflection.Assembly.GetEntryAssembly().Location;
var launcherPath = System.IO.Path.GetDirectoryName(executeableFullName);

然后,您将启动器的路径和其他程序的相对路径组合在一起:

var absolutePath = System.IO.Path.Combine(launcherPath, relativePath);
Process.Start(abosolutePath);