2011-07-28 100 views
0

我正在嘗試刪除在獨立存儲中創建的文件夾。 但我得到的錯誤「路徑必須是有效的文件名」 我創建的文件名是「a07292011 // time.Schedule」在windows phone 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); 
     } 
    } 
相關問題