Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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# 将文件创建日期设置为1976年1月1日,但除非年份在1980年之后,否则不会有任何效果_C# - Fatal编程技术网

C# 将文件创建日期设置为1976年1月1日,但除非年份在1980年之后,否则不会有任何效果

C# 将文件创建日期设置为1976年1月1日,但除非年份在1980年之后,否则不会有任何效果,c#,C#,strYear的价值是1976年。我将创建日期设置为1976年1月1日,但什么都没有发生。如果年份是1977年、1978年或1979年,它就不起作用了。这可能是什么原因?从1980年开始的日期只起作用吗 //将文件创建日期更改为1月1日,并更改元数据中已存在的文件的年份 DateTime datTime=新的日期时间(转换为.ToInt16(strYear),2,2,12,59,0,0); SetCreationTime(文件,datTime); 对于FAT或MS-DOS兼容的文件系统,这可能是

strYear的价值是1976年。我将创建日期设置为1976年1月1日,但什么都没有发生。如果年份是1977年、1978年或1979年,它就不起作用了。这可能是什么原因?从1980年开始的日期只起作用吗

//将文件创建日期更改为1月1日,并更改元数据中已存在的文件的年份
DateTime datTime=新的日期时间(转换为.ToInt16(strYear),2,2,12,59,0,0);
SetCreationTime(文件,datTime);

对于FAT或MS-DOS兼容的文件系统,这可能是文件系统的最短时间,即1980年


我猜NTFS卷将一直支持1601年。FAT只能追溯到1980年。

根据您的文件系统,您可能会被卡住。 有关详细信息,请参阅。
NTFS将允许较旧的日期,但较旧的文件系统(DOS/FAT)会将您限制在1980年或更年轻的日期

有没有办法解决这个问题?提到日期限制。@IsiahJones一个更好的问题是为什么要将其存储在文件中。@IsiahJones您要写入的文件系统类型是什么?ntfs?胖?嗯,除非你只喜欢1600年以后创作的音乐,否则这是不可能的。您需要单独记录合成时间(或者简单地将它们存储在文件名本身中,如
YYYY-MM-DD
)。
file.SetCreationTime
是Win32
SetFileTime
函数的薄包装。它应该支持底层文件系统支持的任何日期,因为它本身没有限制(NTFS可以支持1980年之前的文件时间,但FAT不能)。