小编Ty *_*ton的帖子

如何确定文件最近何时重命名?

我有一个程序来比较两个文件夹中的文件.我想检测文件是否已重命名,确定最新文件(最近重命名),并更新旧文件上的名称以匹配.

为了实现这一点,我会检查最新文件是否与旧文件一点一点,如果是,只需重命名旧文件以匹配新文件.

问题是,我没有什么可以告诉我哪个文件最近被重命名.

我会喜欢FileInfo.LastModified等属性,但是对于已重命名的文件.

我已经看过像FileSystemWatcher这样的解决方案了,这不是我想要的.我希望能够随时运行我的同步器,而不必担心某个专用进程跟踪文件夹的状态.

有任何想法吗?

c# rename fileinfo

7
推荐指数
1
解决办法
4711
查看次数

如何在C#WinRT组件中使用List <T>或Dictionary <T,T2>

我正在尝试创建一个用于Metro风格应用程序(win8)的C#WinRT组件,并且我遇到了投影类型的问题.

由于其保护级别,IVector <>和IMap <>数据类似乎无法访问?

我的示例WinMD库有一个类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Foundation.Collections;

namespace ClassLibrary1
{
    public sealed class Class1
    {
        public IVector<string> foo()
        {
            return new List<string>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下编译器错误:

Inconsistent accessibility: return type 'Windows.Foundation.Collections.IVector<string>' is less accessible than method 'ClassLibrary1.Class1.foo()'

'Windows.Foundation.Collections.IVector<string>' is inaccessible due to its protection level
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:

啊哈!

事实证明我不应该直接使用WinRT类型名称,而是使用他们翻译的.NET名称.

正确的代码如下所示:

namespace ClassLibrary1
{
    public sealed class Class1
    {
        public IList<string> foo()
        {
            return new List<string>();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# winapi microsoft-metro windows-8 windows-runtime

5
推荐指数
1
解决办法
3632
查看次数