2009-04-09 3 views

Trả lời

8

Dường như không xuất hiện trong C# gốc để thực hiện (có thể có trong Win32 gốc, nhưng tôi không biết).

Việc bạn có thể làm là mở tệp hiện có và sao chép tệp đó vào tệp mới và xóa tệp cũ. Nó sẽ chậm so với một động thái, nhưng nó có thể là cách duy nhất.

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()); 
} 
+0

Tôi cho rằng nó chỉ là chậm nếu tập tin là thực sự lớn. Có lẽ một vài MB nên không liên quan. Hãy thử nó. Cảm ơn Samuel –

+0

Hoạt động tuyệt vời! Không có chi phí đáng chú ý. –

7

Ngoài các bản sao vào một tập tin mới, sau đó xóa các phương pháp tập tin cũ, bắt đầu với Silverlight 4 và .NET Framework v4, IsolatedStorageFile lộ MoveFile và phương pháp MoveDirectory.

1

hoàn hảo thực thi đoạn mã này

string oldName="oldName"; 
string newName="newName"; 
var file = await ApplicationData.Current.LocalFolder.GetFileAsync(oldName); 
await file.RenameAsync(newName); 
+0

Câu trả lời này sử dụng các API WinRT mới, chứ không phải là IsolatedStorage, theo yêu cầu của OP –