假设我在C#代码ae /a/b/c/xyz.exe中有一个二进制文件,它需要/a/b/c/hello.txt在同一目录中.如何在完整路径中获取/a/b/c/hello.txt?
在python中,我可以获取正在运行的程序的路径os.path.abspath(sys.argv[0]),并且我可以使用dirname()获取目录信息,并且我可以使用join()来获取新的完整路径.
import sys
from os.path import *
newName = join(dirname(abspath(sys.arg[0]), "hello.txt")
Run Code Online (Sandbox Code Playgroud)
C#怎么能做同样的事情?
您可以使用Environment.CurrentDirectory,Environment.GetCommandLineArgs和System.IO.Path中的类来执行相同的操作.您的代码将翻译为:
// using System.IO;
string newPath = Path.Combine(
Path.GetDirectoryName(
Path.GetFullPath(Environment.GetCommandLineArgs[0])
), "hello.txt");
Run Code Online (Sandbox Code Playgroud)
但是,如果在调用此目录之前当前目录已更改,则此操作将失败.(它也将在python中......)使用以下内容可能更好:
// using System.IO;
// using System.Reflection;
string newPath = Path.Combine(
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)
, "hello.txt");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |