I need to rename a file in the IsolatedStorage. How can I do that?
Asked
Active
Viewed 2,442 times
3 Answers
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
-
I suppose it is only slow if the file is really big. Maybe a couple of MB should be irrelevant. Going to try it. Thanks Samuel – Artur Carvalho Apr 09 '09 at 22:41
-
Works great! No noticeable overhead. – Artur Carvalho Apr 09 '09 at 23:10
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
-
This answer uses the new WinRT APIs, and not IsolatedStorage, as requested by the OP – Tom Lint Aug 01 '17 at 18:43