5

在 windows 8 app dev 上制作实验室时。我无法加载所有需要的图像。因此,为了让共享部分与共享图像一起使用,我需要检查图像文件是否可用。该项目是一个使用 XAML 和 C# 的 windows 网格应用程序过去我使用

Using System.IO
 ... lost of code
privat void share()
....
    if (File.exist(filename)
    { 
       add file to share
    }

如果我在我的 window8 项目中尝试这个。找不到 File 类。

我在互联网上搜索,但找不到在 C# 中检查 windowsstore 应用程序是否存在的代码示例

米歇尔

4

2 回答 2

13

你不需要StorageFileFile

这是检查和获取文件的简单示例

StorageFile file;
try {
    file = await ApplicationData.Current.LocalFolder.GetFileAsync("foo.txt");
}
catch (FileNotFoundException) {
    file = null;
}

你可以写一个函数

public static async Task<bool> FileExistsAsync(this StorageFolder folder, string fileName)
{
    try
    {
        await folder.GetFileAsync(fileName);
        return true;
    }
    catch (FileNotFoundException)
    {
        return false;
    }
}
于 2012-11-26T18:01:07.343 回答
2

如果您知道本地存储中的路径并且有一堆文件要检查,则可以执行以下操作...

var sourceFolder = Windows.ApplicationModel.Package.Current.InstalledLocation;
sourceFolder = await sourceFolder.GetFolderAsync("Assets");
var files = await sourceFolder.GetFilesAsync();
var requiredFiles = new List<String> { "ThisWorks.png", "NotHere.png" };
foreach(var filename in requiredFiles)
{
    // your example logic here...
    Debug.WriteLine(filename + " " + (files.Any(f => f.Name == filename) ? "Exists" : "Doesn't exist"));
}
于 2012-11-26T18:06:21.100 回答