2011-07-28 2 views
0

격리 된 저장소에서 생성 된 폴더를 삭제하려고합니다. 의 오류 메시지가 나타납니다. "유효한 파일 이름이어야합니다." 작성한 파일 이름은 "a07292011 // time.Schedule"입니다.Windows 전화에서 격리 된 저장소 디렉토리 삭제 7

그래서 지금은 폴더를 삭제하려면 내 코드는 다음과 같습니다

myStore.DeleteDirectory (selectedFolderName1 + "\\");

경우 여기 selectedFolderName1 = a07292011

+2

희망, 디렉토리 이름을 (+ "\\") 추가 할 필요가 없습니다. 당신이 폴더 자체를 삭제하려고하기 때문에. –

답변

3
/// <summary> 
    /// Method for deleting an isolated storage directory 
    /// </summary> 
    /// <param name="directoryName">Name of a directory to be deleted</param> 
    public static void DeleteDirectory(string directoryName) 
    { 
     try 
     { 
      using (IsolatedStorageFile currentIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
      { 
       if (!string.IsNullOrEmpty(directoryName) && currentIsolatedStorage.DirectoryExists(directoryName)) 
       { 
        currentIsolatedStorage.DeleteDirectory(directoryName); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      // do something with exception 
     } 
    } 

받기 자세한 내용

http://www.eugenedotnet.com/2010/11/isolated-storage-for-windows-phone-7/

+0

시도했습니다. 격리 된 저장소에 액세스하는 중 오류가 있습니다. –

+0

입니다. currentIsolatedStorage.DirectoryExists (directoryName)가 true를 반환합니까? –

+3

http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.deletedirectory.aspx 해당 URL로 확인하십시오. ** 디렉토리는 삭제되기 전에 비어 있어야합니다. 삭제 된 디렉토리는 일단 삭제되면 복구 할 수 없습니다. ** –

4

당신이 비어 있어야 삭제하려고 디렉토리.

public void DeleteDirectory(string directoryName) { 
try { 
    using (IsolatedStorageFile isoFile = IsolatedStorageFile.GetUserStoreForApplication()) { 
     if (!string.IsNullOrEmpty(directoryName) && currentIsolatedStorage.DirectoryExists(directoryName)) { 
      var fn = isoFile.GetFileNames(string.Concat(directoryName, "\\*")); 
      if (fn.Length > 0) 
       for (int i = 0; i < fn.Length; ++i) 
        isoFile.DeleteFile(string.Concat(directoryName, "\\", fn[i])); 
      isoFile.DeleteDirectory(directoryName); 
     } 
    } 
} catch (Exception ex) { 
    //implement some error handling 
} 
} 
5

다음은 분리 된 저장소에서 폴더 및 파일/하위 폴더를 재귀 적으로 삭제하는 코드입니다. Windows Phone 8에서도 작동합니다.

public static void CleanAndDeleteDirectoryRecursive(string directory) 
    { 
     IsolatedStorageFile iso = IsolatedStorageFile.GetUserStoreForApplication(); 
     if (iso.DirectoryExists(directory)) 
     { 
      string[] files = iso.GetFileNames(directory + @"/*"); 
      foreach (string file in files) 
      { 
       iso.DeleteFile(directory + @"/" + file); 
       Debug.WriteLine("Deleted file: " + directory + @"/" + file); 
      } 

      string[] subDirectories = iso.GetDirectoryNames(directory + @"/*"); 
      foreach (string subDirectory in subDirectories) 
      { 
       CleanAndDeleteDirectoryRecursive(directory + @"/" + subDirectory); 
      } 

      iso.DeleteDirectory(directory); 
      Debug.WriteLine("Deleted directory: " + directory); 
     } 
    } 
관련 문제