C#Compact Edition 6.5的新功能。我试图在一个文件上设置日期时间,该文件似乎与实际系统时间相差5小时。我只是这样做来创建文件:
FileStream fs= File.Create(name);
正好这样创建日期提前5个小时...如果我尝试设置CreationTime,我会收到编译错误,说属性是Readonly,认真吗?
FileInfo fi = new FileInfo(name);
fi.CreationTime = date;
所以我的问题是,因为我是C#的新手,你如何在CE框架中访问“只读”属性?我看到提到P / Invoke但似乎只适用于方法,而不是属性。任何人都可以快速演示如何做到这一点?
我已经尝试了这个 solution ,即使我发送当前的当地时间,仍然会收到写入UTC的文件
答案 0 :(得分:1)
我刚跑了这个:
[MTAThread]
static void Main()
{
var name = "\\foo.txt";
var info = new FileInfo(name);
using (info.Create()) { }
info.Refresh();
var createTime = info.CreationTime;
var now = DateTime.Now;
var delta = now - createTime;
Debug.WriteLine(delta.ToString());
}
得到了这个输出:
00:00:00.0140000
这对我来说似乎是正确的。
答案 1 :(得分:0)
您无法修改文件的CreationTime。创建文件时只设置一次。如果您愿意使用P / Invoke设置时间,可以查看类似的问题 - c# - Change file LastWriteDate in Compact Framework