webForumDet fria alternativet

Isolated storage

5 svar · 640 visningar · startad av cok

cokMedlem sedan dec. 2005664 inlägg
#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?

PeddaMedlem sedan juni 20006 032 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

LaspMedlem sedan juli 200012 980 inlägg
#3

Intressant!

cokMedlem sedan dec. 2005664 inlägg
#4

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

PeddaMedlem sedan juni 20006 032 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.

cokMedlem 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.

243 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
118 ms — hämta statistik (db)
123 ms — hämta tråd, inlägg och bilagor (db)