Code Monkey home page Code Monkey logo

Comments (11)

nickdu088 avatar nickdu088 commented on June 27, 2024

What exception did you receive? I haven't tried two images at the same time. One temp solution is to save the files to your local drive and then transfer to the new image

from sharpext4.

Giacomo-Gozzi avatar Giacomo-Gozzi commented on June 27, 2024

I tried saving them to the local disk but I would need to keep the file permissions, that way they are lost.

There are two kinds of exceptions(I assume there is a static pointer used by both):

1) Could not read disk MBR

var d1 = ExtDisk.Open(@"C:\Users\Giacomo\Downloads\raspbian_1.img");
var fs1 = ExtFileSystem.Open(d1.Partitions[1]);
var d2 = ExtDisk.Open(@"C:\Users\Giacomo\Downloads\raspbian_2.img");
var fs2 = ExtFileSystem.Open(d2.Partitions[1]);

The exception is generated at line 3

2) Could not register partition.

var d1 = ExtDisk.Open(@"C:\Users\Giacomo\Downloads\raspbian_1.img");
var d2 = ExtDisk.Open(@"C:\Users\Giacomo\Downloads\raspbian_2.img");
var fs1 = ExtFileSystem.Open(d1.Partitions[1]);
var fs2 = ExtFileSystem.Open(d2.Partitions[1]);

The exception is generated at line 4

from sharpext4.

nickdu088 avatar nickdu088 commented on June 27, 2024

Probably yes.

When you transfer the file, keeping file permissions in a Dictionary<path, permission> in the memory, after the transfer, you can use
setmode to set the original permission.

from sharpext4.

Giacomo-Gozzi avatar Giacomo-Gozzi commented on June 27, 2024

Yes of course but it would be much more convenient to move files directly between images.

Do you think it would be possible to fix the problem?

from sharpext4.

nickdu088 avatar nickdu088 commented on June 27, 2024

I need take a look.

from sharpext4.

nickdu088 avatar nickdu088 commented on June 27, 2024

Yes of course but it would be much more convenient to move files directly between images.

Do you think it would be possible to fix the problem?

This is the limitation of lew4. It only can take one disk image at a time, because the underline implementation is C. All variables are global variable and shared across the library.

from sharpext4.

Giacomo-Gozzi avatar Giacomo-Gozzi commented on June 27, 2024

I tried to view the code, are you sure it is not a SharpExt4 problem?
I noticed that in the ExtDisk.cpp file on line 56

auto disk = gcnew ExtDisk(imagePath);

disk->bd always has the same pointer, they seem to me declared satatic in the io_raw.cpp file

from sharpext4.

nickdu088 avatar nickdu088 commented on June 27, 2024

I tried to view the code, are you sure it is not a SharpExt4 problem? I noticed that in the ExtDisk.cpp file on line 56

auto disk = gcnew ExtDisk(imagePath);

disk->bd always has the same pointer, they seem to me declared satatic in the io_raw.cpp file

I have done the quick fix. It seems working ok on my side. Let me know if you still have the issue.

from sharpext4.

Giacomo-Gozzi avatar Giacomo-Gozzi commented on June 27, 2024

It now allows you to open two filesystems, the problem is that it always displays the last opened disk.

var disk1 = ExtDisk.Open(@".\disk1.img");
var disk2 = ExtDisk.Open(@".\disk2.img");

var fs1 = ExtFileSystem.Open(disk1.Partitions[1]);
ListAllFiles(fs1);
CreateFile(fs1);

var fs2 = ExtFileSystem.Open(disk2.Partitions[1]);
ListAllFiles(fs2);

ListAllFiles(fs1); View files in disk 2
CreateFile(fs1); Create the file in disk 2

In my project, the same pointer for ExtDisk.bd always remains.

from sharpext4.

nickdu088 avatar nickdu088 commented on June 27, 2024

It now allows you to open two filesystems, the problem is that it always displays the last opened disk.

var disk1 = ExtDisk.Open(@".\disk1.img");
var disk2 = ExtDisk.Open(@".\disk2.img");

var fs1 = ExtFileSystem.Open(disk1.Partitions[1]);
ListAllFiles(fs1);
CreateFile(fs1);

var fs2 = ExtFileSystem.Open(disk2.Partitions[1]);
ListAllFiles(fs2);

ListAllFiles(fs1); View files in disk 2 CreateFile(fs1); Create the file in disk 2

In my project, the same pointer for ExtDisk.bd always remains.

Hope this time, this issue get fixed. I did a quick test, and it's working.
The ExtFileSystem.Open API has been updated.

from sharpext4.

Giacomo-Gozzi avatar Giacomo-Gozzi commented on June 27, 2024

Perfect everything seems to be working correctly, many thanks

from sharpext4.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.