gpt4 book ai didi

c# - 您如何获得 IsolatedStorage 中所有文件的平面列表?

转载 作者:行者123 更新时间:2023-11-30 14:42:37 26 4
gpt4 key购买 nike

我需要获取给定 IsolatedStorage 文件夹中所有文件的列表。 IsolatedStorage 的根目录之外有子文件夹,这些需要包含在列表中。

通常的 System.IO 类不能与 IsolatedStorage 一起使用。

最佳答案

这是我想出的 - 它有效,但我很想看看是否有更好的选择:

using System.Collections.Generic;
using System.IO;
using System.IO.IsolatedStorage;
using System.Linq;

public static class IsolatedStorageFileExtensions
{

/// <summary>
/// Recursively gets a list of all files in isolated storage
/// </summary>
/// <remarks>Based on <see cref="http://dotnetperls.com/recursively-find-files"/></remarks>
/// <param name="isolatedStorageFile"></param>
/// <returns></returns>
public static List<string> GetAllFilePaths(this IsolatedStorageFile isolatedStorageFile)
{
// Store results in the file results list
List<string> result = new List<string>();

// Store a stack of our directories
Stack<string> stack = new Stack<string>();

// Add initial directory
string initialDirectory = "*";
stack.Push(initialDirectory);

// Continue while there are directories to process
while (stack.Count > 0)
{
// Get top directory
string dir = stack.Pop();

string directoryPath;
if (dir == "*")
{
directoryPath = "*";
}
else
{
directoryPath = dir + @"\*";
}

// Add all files at this directory to the result List
var filesInCurrentDirectory = isolatedStorageFile.GetFileNames(directoryPath).ToList<string>();

List<string> filesInCurrentDirectoryWithFolderName = new List<string>();

// Prefix the filename with the directory name
foreach (string file in filesInCurrentDirectory)
{
filesInCurrentDirectoryWithFolderName.Add(Path.Combine(dir, file));
}

result.AddRange(filesInCurrentDirectoryWithFolderName);

// Add all directories at this directory
foreach (string directoryName in isolatedStorageFile.GetDirectoryNames(directoryPath))
{
stack.Push(directoryName);
}

}

return result;

}

}

关于c# - 您如何获得 IsolatedStorage 中所有文件的平面列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3038770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com