webForumDet fria alternativet

Isolated storage

.NET

5 svar · 640 visningar · startad av cok

Medlem sedan dec. 2005664 inlägg
Frågan#1

Hallå, jag sitter och tittar lite på IsolatedStorage, har jag förstått det hela rätt att om man skapar en fil mha IsolatedStorage så hittas den bara utav samma program som skapat den och att jag inte själv kan hitta den öht i filsystemet?

Om jag kör följande kod:

IsolatedStorageFile userStore = IsolatedStorageFile.GetUserStoreForAssembly();
IsolatedStorageFileStream userStream = new IsolatedStorageFileStream("miffo.txt", FileMode.Create, userStore);

StreamWriter Writer = new StreamWriter(userStream);
Writer.WriteLine("HEJEJEJE");
Writer.Close();

Då skapas det en fil (jag har testat att läs ut den ur systemet genom programet och får ut informationen).

Men meningen med att spara filer här ska tydligen vara att t ex kunna spara ner användarinformation etc. Stämmer det att man öht inte ska kunna accessa filen från filsystemet, mer än genom själva programmet?

Medlem sedan juni 20006 031 inlägg
#2

Nej, man kan hitta den i filsystemet om man vet var man ska leta.

Jag testade med den här koden.

using System;
using System.Collections.Generic;
using System.Text;
using System.IO.IsolatedStorage;
using System.IO;

namespace IsolatedStorageDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            /*
             *  READING AND WRITING DATA TO A STORAGE
             */

            string userFile = "UserSettings.set";

            IsolatedStorageFile userStore = IsolatedStorageFile.GetUserStoreForAssembly();

            // create a store
            IsolatedStorageFileStream userStream = new IsolatedStorageFileStream(userFile, FileMode.Create, userStore);

            // write data into my stream (userStream)
            StreamWriter userWriter = new StreamWriter(userStream);
            userWriter.WriteLine("User prefs");
            userWriter.Close();

            // read data from my storage
            string[] files = userStore.GetFileNames(userFile);

            if (files.Length == 0)
            {
                Console.WriteLine("No data saved for this user.");
            }
            else
            {
                // show the data from the file
                userStream = new IsolatedStorageFileStream(userFile, FileMode.Open, userStore);
                StreamReader userReader = new StreamReader(userStream);

                string contents = userReader.ReadToEnd();
                Console.WriteLine(contents);
            }
        }
    }
}

och hittade filen
C:\Documents and Settings\Per\Lokala inställningar\Application Data\IsolatedStorage\puninbbc.0fo\1cnny32r.5s3\Url.sfmnxxf224rxcu2yw4y5nez54au3pc0y\AssemFiles\UserSettings.set

Medlem sedan juli 200012 978 inlägg
#3

Intressant!

Medlem sedan dec. 2005664 inlägg
#4

Pedda, stämmer bra. Jag kunde dock inte söka upp filen utan fick navigera dit själv.

Medlem sedan juni 20006 031 inlägg
#5

Det var nog för att du inte sökte i dolda mappar och filer. Har för mig att IsolateStorage är dold som standard.

Medlem sedan dec. 2005664 inlägg
#6

jJag har aktiverat "visa dolda filer/mappar". Antog att sökningen då innefattade även dessa filer då men det måste man välja per sökning.

256 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)