2012-09-19 3 views
1

이 C# 코드가 있고 문서 라이브러리에서 특정 하위 디렉터리를 삭제하려고합니다. 그러나 디렉토리가 비어 있지 않으므로 이로 인해 오류가 발생합니다. 누군가가 나를 어떻게 안내 할 수 있기를 바랍니다.C# xaml metro 스타일로 디렉토리를 비우는 방법은 무엇입니까?

답장을 보내 주셔서 감사합니다.

StorageFolder storageFolder = KnownFolders.DocumentsLibrary;    
var queryResult = storageFolder.CreateFolderQuery(); 
IReadOnlyList<StorageFolder> folderList = await queryResult.GetFoldersAsync(); 

foreach (StorageFolder folder in folderList) 
    { 
     await folder.DeleteAsync();    
    } 
+0

삭제하려는 폴더의 모든 파일을 삭제해야합니다. 빈 디렉터리 만 삭제할 수 있습니다. –

답변

2

당신은 폴더에있는 모든 파일의 목록을 획득하고 하위 폴더 및 파일을 지정하는 DeleteAsync() 방법 방법이 없기 때문에 폴더를 삭제하기 전에 삭제하는 StorageFolder.GetFilesAsync()를 사용할 수 있습니다.

자세한 정보 : StorageFolder class | MSDN

2

희망이 도움이 될 수 있습니다.

public async void deletefile() 
     { 
      StorageFolder sourceFolder = ApplicationData.Current.TemporaryFolder; 
      // sourceFolder = await sourceFolder.GetFolderAsync("Test"); 
      // await sourceFolder.DeleteAsync(StorageDeleteOption.PermanentDelete); 


      // var files = await sourceFolder.GetFilesAsync(); 

      IReadOnlyList<StorageFile> folderList = await sourceFolder.GetFilesAsync(); 
      if (folderList.Count > 0) 
      { 
       foreach (StorageFile f1 in folderList) 
       { 

        await f1.DeleteAsync(StorageDeleteOption.PermanentDelete); 
       } 
      } 

      //StorageFile retfile = await ApplicationData.Current.TemporaryFolder.GetFileAsync("MysoundFile.mp3"); 
      // if (retfile != null) 
      // { 
      //  await retfile.DeleteAsync(StorageDeleteOption.PermanentDelete); 
      // } 


     } 
관련 문제