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
Solved

change file attributes in a directory tree

Posted on 2001-08-16
5
614 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
  • 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

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
Socket Programming (Unix) 8 140
Header of docx file 17 114
object oriented programming comparison 5 77
Error creating a new C++ project in ,net 20 41
Unlike C#, C++ doesn't have native support for sealing classes (so they cannot be sub-classed). At the cost of a virtual base class pointer it is possible to implement a pseudo sealing mechanism The trick is to virtually inherit from a base class…
What is C++ STL?: STL stands for Standard Template Library and is a part of standard C++ libraries. It contains many useful data structures (containers) and algorithms, which can spare you a lot of the time. Today we will look at the STL Vector. …
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 be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.

809 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