Home > Mobile >  Can I access a folder right after it's created
Can I access a folder right after it's created

Time:07-15

This maybe because I'm used to backend and async in js but if I type this in rust..

fs::create_dir("dir1")

Then use

fs::File::create("dir1/file1.txt")

To create a file in the new folder right after, is it bound to go wrong, should the program sleep for a second to make sure the directory has already been created on the environment?

CodePudding user response:

To answer this, No it is not bound to go wrong. And also to add in general, sleeping to ensure that something is being done is not that of a good idea.

In the case you provided, fs::create_dir is sync and it returns a Result type. So before you create file inside dir1 make sure you check the result is ok. And also check the result for creating file is ok.

fn create_file(){
    if fs::create_dir("dir1").is_ok() {
        if fs::File::create("dir1/file1.txt").is_ok() {
           println!("File created inside dir1"); 
       }
    }
}

Also, while inside rust you can take the gurantee that once directory is created it stays there but this won't always be case. For example, a system might have a background job that keeps deleting the directory inside some place. Hopefully, you don't always have to worry about all these extreme cases but just so you know ;)

  • Related