Solved

change file attributes in a directory tree

Posted on 2001-08-16
5
632 Views
Last Modified: 2008-03-17
Greetings.

Please inform me if there is a better place to ask this.

I need to, as part of an install program, change the attributes of all files under a given directory to remove the read-only attribute after they are copied from a CD. I am working in C++ (cbuilder to be exact, but I can use Win API's if I need to).
Any suggestions?

Thanks
Jeff Kish
jeff.kish@mro.com
0
Comment
Question by:kishj
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 
LVL 30

Expert Comment

by:Axter
ID: 6392557
You can use the SetFileAttributes() function.
0
 
LVL 30

Expert Comment

by:Axter
ID: 6392563
You can use the FindFirstFile function with the FindNextFile function, in order to find all the files in a directory.
Then use the SetFileAttributes function to change the attributes.
0
 
LVL 30

Accepted Solution

by:
Axter earned 100 total points
ID: 6392574
Example:

char FileName[] = "c:\\autoexec.bat";
SetFileAttributes(FileName,FILE_ATTRIBUTE_NORMAL);
0
 

Author Comment

by:kishj
ID: 6392628
Do you have a recursive snippet to go through all subdirs?
0
 
LVL 8

Expert Comment

by:mnashadka
ID: 6392655
Inside C++ Builder, you can use the opendir, readdir, and closedir functions to go through the directory for file names (there's an example in C++ Builder help).  Then you can use the _rtl_chmod functions to remove the read-only attributes, like:

int attrib = _rtl_chmod("C:\\temp", 0);
_rtl_chmod("C:\\temp", 1, attrib & ~FA_RDONLY);

Hope this helps.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Errors will happen. It is a fact of life for the programmer. How and when errors are detected have a great impact on quality and cost of a product. It is better to detect errors at compile time, when possible and practical. Errors that make their wa…
Written by John Humphreys C++ Threading and the POSIX Library This article will cover the basic information that you need to know in order to make use of the POSIX threading library available for C and C++ on UNIX and most Linux systems.   [s…
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question