【问题标题】:How to set a operating path?如何设置运行路径?
【发布时间】:2017-03-22 16:12:41
【问题描述】:
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 的路径是什么,这段代码都应该可以工作。不变的是查找和移动文件的路径。

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


【解决方案1】:

这取决于您要将它们移动到哪里。目前您只需将它们放在运行 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

简而言之,尽管不要尝试更改“操作路径”(如您的问题标题中所述),而是准确指定您希望将文件移动到、读取或其他任何位置.除非假设所有内容都源自应用程序目录,否则不要对您正在使用的目录做出任何假设(仅对记录到文件、检索应用程序部署的资源等操作有意义 )

【讨论】:

  • 即使在记录到文件时,您也应该选择正确的 AppData 路径。运行 SomeApp 的用户不需要对 C:\Program Files\SomeApp 的写入权限即可登录工作。
【解决方案2】:

主要问题是这一行:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • Server.MapPath 仅适用于 Web 应用程序。问题是关于控制台应用程序。 OP 并没有询问如何找到当前路径,而是询问如何将文件 移动 到特定路径
    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 2012-04-05
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多