如何检查windowsstore应用程序中是否存在文件

时间:2012-11-26 17:53:26

标签: c# windows-8 windows-store-apps

在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应用程序是否存在

米希尔

2 个答案:

答案 0 :(得分:13)

您需要StorageFile而不是File

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

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;
    }
}

答案 1 :(得分: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"));
}