如何设置操作路径?

How to set a operating path?

namespace Videos_umbennen
{
    class Program
    {
        static void Main(string[] args)
        {


            string path = @"C:\Users\Kamil\Desktop\C# with .Net Programming\";
            var myFiles = Directory.GetFiles(path, "*.mp4");
            for (int i = 0; i < myFiles.Length; i++)
            {

                File.Move(Path.GetFileName(myFiles[i]), "video " + i);

            }
            var newFiles = Directory.GetFiles(path, "*.mp4");
            for (int i = 0; i < newFiles.Length; i++)
            {
                Console.WriteLine(newFiles.GetValue(i));
            }
        }
    }
}

我写了这段代码,但问题是它只能在我放置程序 .exe 的文件夹中工作,那么如何让 .exe 从任何目录工作?是否有一些方法或其他东西可以表明我在特定路径或其他地方工作?

这取决于您要将它们移动到哪里。目前,您只需将它们放在 EXE 所在的路径中 运行,因为您没有指定文件夹,因此这是默认文件夹。

示例:

File.Move(myFiles[i], Path.Combine(path, "video " + i.ToString + ".mp4"));

// Path.GetFileName is not necessary, the path returned from GetFiles is the full path

这会将文件移动到同一目录,但将文件名更改为 video XXX.mp4

简而言之,不要尝试更改 "operating path"(如您的问题标题所述),而是准确指定您希望将文件移动到的位置,阅读,或其他。不要假设你正在从哪个目录工作,除非假设一切都源于应用程序目录(仅对记录到文件、检索应用程序部署的资源等操作有意义)

主要问题是这一行:

File.Move(Path.GetFileName(myFiles[i]), "video " + i);

第二个参数"video " + i 将与当前正在执行的程序相关。您可以使用 Path.Combine

使其相对于 path
File.Move(Path.GetFileName(myFiles[i]), Path.Combine(path, "video " + i));

你可以Server.MapPath("C:\Users\Kamil\Desktop\C# with .Net Programming\")它returns完整路径,包括服务器上的目录。