首先考虑这个问题的先决条件。我不是母语人士,今天我开始学习C#,几乎没有任何编程知识,我想编写windows表单程序,将程序中包含的文件(图形资源)复制到另一个程序目录中的某些文件夹中(更确切地说,我想通过单击按钮修改图形资源然后能够更改它们。我做了我的研究,我知道我应该使用File.Copy方法我只有一个关于我找到的代码的问题:
static void Main()
{
string fileName = "test.txt";
**string sourcePath = @"C:\Users\Public\TestFolder";
string targetPath = @"C:\Users\Public\TestFolder\SubDir";**
// Use Path class to manipulate file and directory paths.
string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
string destFile = System.IO.Path.Combine(targetPath, fileName);
我知道这不是完整的代码,但这是我想问我的问题的部分。我可以像这样定义sourcePath和targetPath,例如:“./ folder / folder2 /”?基本上我希望我的程序假设它在另一个软件的“正确目录”中,我不想指定该目录的完整路径。换句话说,我的程序知道它当前在哪个目录,如果不知道我怎么能让它知道?我希望我说的正确。谢谢你的帮助。
答案 0 :(得分:2)
为了确保您指的是应用程序的路径,您可以使用它:
string exePath = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetEntryAssembly().Location);
或AppDomain.CurrentDomain.BaseDirectory
记得确认您正在申请的目录是否存在,否则您可能会获得DirectoryNotFoundException
答案 1 :(得分:2)
您可以提供I / O操作的相对路径,默认路径是Environment.CurrentDirectoy
值,大多数情况下,这将是Windows窗体可执行文件所在的目录。
请注意,您的路径中不需要./
起点,File.Copy("FileA.txt", "FileA_1.txt")
会在Environment.CurrentDirectory
中查找这些位置。