8

I need to rename a file in the IsolatedStorage. How can I do that?

MrTux
  • 32,350
  • 30
  • 109
  • 146
Artur Carvalho
  • 6,901
  • 10
  • 76
  • 105

3 Answers3

9

There doesn't appear to anyway in native C# to do it (there might be in native Win32, but I don't know).

What you could do is open the existing file and copy it to a new file and delete the old one. It would be slow compared to a move, but it might be only way.

var oldName = "file.old"; var newName = "file.new";

using (var store = IsolatedStorageFile.GetUserStoreForApplication())
using (var readStream = new IsolatedStorageFileStream(oldName, FileMode.Open, store))
using (var writeStream = new IsolatedStorageFileStream(newName, FileMode.Create, store))
using (var reader = new StreamReader(readStream))
using (var writer = new StreamWriter(writeStream))
{
  writer.Write(reader.ReadToEnd());
}
Samuel
  • 37,778
  • 11
  • 85
  • 87
7

In addition to the copy to a new file, then delete the old file method, starting with Silverlight 4 and .NET Framework v4, IsolatedStorageFile exposes MoveFile and MoveDirectory methods.

Matt Ellis
  • 1,051
  • 1
  • 9
  • 8
1

Perfectly execute this piece of code

string oldName="oldName";
string newName="newName";
var file = await ApplicationData.Current.LocalFolder.GetFileAsync(oldName);
await file.RenameAsync(newName);
Attif
  • 1,158
  • 13
  • 17