ファイルとフォルダーのリストを返す Web サービスの再帰的検索機能を構築しようとしています。再帰検索として機能するように 2 つのメソッドを作成しました。最初に最上位のコンテンツを取得して取得し、次に任意のファイルを fileList に追加し、任意のサブ フォルダーを subFoldersList に追加します。アクセス レベル (この場合はルート) を渡し、次に情報が必要なパスを渡します。フォルダが見つかった場合は、そのフォルダの検索が開始されているため、最上位のフォルダが削除されます。次に、processDirectories メソッドを呼び出します。このメソッドは、プロセスを最初からやり直す新しいパスの場所を getFiles に返します。今、私のフォルダ構造をテストするために、以下に示します。2 番目のファイル (profilepic.png) をリストに追加するとき。「コレクションが変更されました。列挙操作が実行されない可能性があります」というエラーが表示されます。
Photos
picture1.png
TestFolder
profilepic.png
私のコード:
public static List<string> fileList = new List<string>();
public static List<string> subFolderList = new List<string>();
static void processDirectories(string access, string Folder)
{
getFiles(access, Folder);
}
static void getFiles(string access, string Folder)
{
var accessToken = new OAuthToken(token, secret);
var api = new DssAPI(ConsumerKey, ConsumerSecret, accessToken);
var folder = api.GetContents(access, Folder);//Get list from WebService
foreach (var item in folder.Contents)//Contents is an IEnumerable
{
if (item.IsDirectory == true)
subFolderList.Add(item.Path);
else
fileList.Add(item.Path);
}
foreach (var subFolder in subFolderList)
{
subFolderList.RemoveAt(0);
processDirectories(root, subFolder);
}
}