如何设置操作路径?

时间:2017-03-22 16:12:41

标签: c# visual-studio system.io.file

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从任何目录中运行?是否有一些方法或某些东西可以表明我在特定的路径中工作?

3 个答案:

答案 0 :(得分:3)

这取决于你想要移动它们的位置。目前,您只需将它们放在运行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

简而言之,不要试图改变&#34;操作路径&#34; (如问题标题中所述),而是指定文件移动,读取或其他任何内容的确切位置。不要假设您正在使用哪个目录,除非假设所有内容都来自应用程序目录(仅对记录到文件,检索应用程序部署资源等操作有意义

答案 1 :(得分:3)

主要问题是这一行:

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

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

将其设为Path.Combine
File.Move(Path.GetFileName(myFiles[i]), Path.Combine(path, "video " + i));

答案 2 :(得分:-1)

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