Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# File.SetCreationTime在调试时起作用,但在拖动应用程序时不起作用_C# - Fatal编程技术网

C# File.SetCreationTime在调试时起作用,但在拖动应用程序时不起作用

C# File.SetCreationTime在调试时起作用,但在拖动应用程序时不起作用,c#,C#,这是我的程序,用于更改应用程序路径中所有文件的CreationTime、AccesTime和WriteTime 例如,当我调试这段代码并在调试文件夹中放一张图片时,代码工作得非常完美 但是当我复制.exe并将其放入一个随机文件夹时,它就不再工作了 Ist AppDomain.CurrentDomain.BaseDirectory阻止了我,或者您在代码中发现了任何错误?它应该非常简单…我知道是什么导致了这个问题。 在他想更改自己的设置CreationTime之前,一切都很好。 那是他停止工作的时候

这是我的程序,用于更改应用程序路径中所有文件的CreationTime、AccesTime和WriteTime
例如,当我调试这段代码并在调试文件夹中放一张图片时,代码工作得非常完美
但是当我复制.exe并将其放入一个随机文件夹时,它就不再工作了

Ist AppDomain.CurrentDomain.BaseDirectory阻止了我,或者您在代码中发现了任何错误?它应该非常简单…

我知道是什么导致了这个问题。 在他想更改自己的设置CreationTime之前,一切都很好。 那是他停止工作的时候

        string loc = AppDomain.CurrentDomain.BaseDirectory;
        string[] filePaths = Directory.GetFiles(loc);
        Random rnd = new Random();
        foreach (var item in filePaths)
        {
            DateTime dt = new DateTime(rnd.Next(1990,2010), rnd.Next(1,12), rnd.Next(1,31));
            File.SetCreationTime(item, dt);
            File.SetLastAccessTime(item, dt);
            File.SetLastWriteTime(item, dt);
        }
这对我来说是个好办法
如果应用程序的名称等于他要使用的名称-->请转到下一步
不知何故,文件夹日期仍然保持不变,但这对我来说并不重要。

谢谢你的努力^^

那么你检查了
loc
等于什么了吗?你应该指定路径或将其作为输入,而不是
AppDomain.CurrentDomain.BaseDirectory
,所以你的问题是为什么Windows不让我对代码做一些愚蠢的事情,比如随机修改我想要的任何文件夹中的所有文件??
            foreach (var item in filePaths)
        {
            char sep = '\\';
            string[] mimi = item.Split(sep);
            if (mimi[mimi.Length - 1] == System.AppDomain.CurrentDomain.FriendlyName) { continue; }


            DateTime dt = new DateTime(rnd.Next(1990, 2010), rnd.Next(1, 12), rnd.Next(1, 31));
            File.SetCreationTime(item, dt);
            File.SetLastAccessTime(item, dt);
            File.SetLastWriteTime(item, dt);
        }