Jump to content
Sign in to follow this  
scriptnewbie

Create a folder and file

Recommended Posts

scriptnewbie

I am trying to create a folder that contains a blank text file. I have a script that I want to run one time on a workstation and not run again when someone else logs on. I am doing this by checking for the file and folder. I wrote the following short script to create the folder and put the file in it. My problem is that the folder gets created, but not the file. What am I missing. Thanks.

#include <file.au3>

$dir = DirCreate("C:\change")

$flag=FileOpen ($dir & "\flag.txt", 2)

FileClose($flag)

Share this post


Link to post
Share on other sites
SmOke_N

I am trying to create a folder that contains a blank text file. I have a script that I want to run one time on a workstation and not run again when someone else logs on. I am doing this by checking for the file and folder. I wrote the following short script to create the folder and put the file in it. My problem is that the folder gets created, but not the file. What am I missing. Thanks.

#include <file.au3>

$dir = DirCreate("C:\change")

$flag=FileOpen ($dir & "\flag.txt", 2)

FileClose($flag)

Look at the "Return" value for DirCreate(), it's not the Directory you created or a Handle... it's a 1 or a 0 boolean style.

Something like:

$sFile = @HomeDrive & "\change"
If DirCreate($sFile) Then
    FileClose(FileOpen($sFile & "\flag.txt", 2))
Else
    MsgBox(16, "Error", "Failed to create the directory")
EndIf

Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites
star2

#include <file.au3>
$folder = @HomeDrive & "\change"
    If FileExists ($folder & "\flag.txt") = 1 Then
        MsgBox (-1 , "info" , "file already exists")
    EndIf
    If DirGetSize ($folder) = -1 Then ; this way u know that the folder does not exists
        DirCreate ($folder)
        FileWrite ($folder & "\flag.txt","")
    EndIf
    If DirGetSize ($folder) >= 0 And FileExists ($folder & "\flag.txt") = 0 Then
        FileWrite ($folder & "\flag.txt","")
    EndIf

I'm not sure of what u want

Edited by star2

[quote]Baby you're all that I want, When you're lyin' here in my armsI'm findin' it hard to believe, We're in heavenAnd love is all that I need , And I found it there in your heartIt isn't too hard to see, We're in heaven .Bryan Adams[/quote].............................................................................[u]AUTOIT[/u]

Share this post


Link to post
Share on other sites
SmOke_N

#include <file.au3>
$folder = @HomeDrive & "\change"
    If FileExists ($folder & "\flag.txt") = 1 Then
        MsgBox (-1 , "info" , "file already exists")
    EndIf
    If DirGetSize ($folder) = -1 Then ; this way u know that the folder does not exists
        DirCreate ($folder)
        FileWrite ($folder & "\flag.txt","")
    EndIf
    If DirGetSize ($folder) >= 0 And FileExists ($folder & "\flag.txt") = 0 Then
        FileWrite ($folder & "\flag.txt","")
    EndIf

I'm not sure of what u want

Just FYI...

You don't need to get the Dir size to know if the directory exists or not... You can use If FileExists($folder) as well.


Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.

Share this post


Link to post
Share on other sites
tAKTelapis

Also, the modes for "fileopen" allow for you to ADD the mode numbers together to get a combined mode, thus:

1 = Write mode (append to end of file)

8 = Create directory structure if it doesn't exist (See Remarks).

then 9 = Create directory structure AND file if it doesn't exist, then open the file for editing in append mode.

So:

$File = FileOpen("C:\change\flag.txt", 9)

Alternatively if all you want do do is create the file, have a look at _FileCreate() in the helpfile, here is its example:

#include <File.au3>

If Not _FileCreate("error.log") Then

MsgBox(4096,"Error", " Error Creating/Resetting log. error:" & @error)

EndIf

Edited by tAKTelapis

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×