我正在嘗試刪除在獨立存儲中創建的文件夾。 但我得到的錯誤「路徑必須是有效的文件名」 我創建的文件名是「a07292011 // time.Schedule」。在windows phone 7中刪除獨立的存儲目錄
所以現在我要刪除的文件夾,我的代碼是:
myStore.DeleteDirectory(selectedFolderName1 + 「\\」);
其中selectedFolderName1 = a07292011
我正在嘗試刪除在獨立存儲中創建的文件夾。 但我得到的錯誤「路徑必須是有效的文件名」 我創建的文件名是「a07292011 // time.Schedule」。在windows phone 7中刪除獨立的存儲目錄
所以現在我要刪除的文件夾,我的代碼是:
myStore.DeleteDirectory(selectedFolderName1 + 「\\」);
其中selectedFolderName1 = a07292011
/// <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/
試過了。我有訪問隔離存儲的錯誤 –
是否currentIsolatedStorage.DirectoryExists(directoryName)返回true? –
http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.deletedirectory.aspx檢查該URL。 **目錄在被刪除之前必須是空的。刪除的目錄無法恢復,一旦刪除。** –
試圖刪除必須爲空目錄。
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
}
}
這裏是我的代碼遞歸刪除文件夾和他們的文件/子文件夾從孤立的存儲。它也適用於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);
}
}
我希望,不需要追加(+「\\」)目錄名稱。因爲你要刪除文件夾本身。 –